1.配置预写日志spark.streaming.receiver.writeAheadLog.enable
自 Spark 1.2 以来, 我们引入了写入日志来实现强大的容错保证.如果启用, 则从 receiver 接收的所有数据都将写入配置 checkpoint 目录中的写入日志.这可以防止 driver 恢复时的数据丢失, 从而确保零数据丢失(在 [容错语义]可以通过设置为 true
来启用此功能.
2.接受速率spark.streaming.receiver.maxRate
设置最大接收速率 - 如果集群资源不够大, streaming 应用程序能够像接收到的那样快速处理数据, 则可以通过设置 记录/秒 的最大速率限制来对 receiver 进行速率限制.
3.自动整调速率spark.streaming.backpressure.enabled
我们引入了一个称为背压的功能, 无需设置此速率限制, 因为Spark Streaming会自动计算速率限制, 并在处理条件发生变化时动态调整速率限制.
4.存储水平org.apache.spark.storage.StorageLevel
设置可见之前的缓存文章
5.中间数据spark.local.dir用于写(RDD Cache、Shuffle)
可以配置:
1 多个路径到多个磁盘增加整体IO带宽
2 如果存储设备的读写速度不同,可以在较快的存储设备上配置更多的目录增加被使用的比例
3 SPARK_LOCAL_DIRS(Standalone, Mesos) LOCAL_DIRS(YARN)参数会覆盖这个配置
6.内存配置spark.storage.memoryFraction,spark.storage.memory
决定了每个Executor可用内存大小,而spark.storage.memoryFraction决定了这部分内存中有多少可以用于Memory Store管理RDD Cache的数据
7.container最大内存yarn.scheduler.maximum-allocation-mb
这个参数表示每个container能够申请到的最大内存,一般是集群统一配置。一个container可以有多个executor
更多配置https://blog.csdn.net/qq_25302531/article/details/80623791
8.预留内存spark.yarn.executor.memoryOverhead
executor执行的时候,用的内存可能会超过executor-memoy,所以会为executor额外预留一部分内存。spark.yarn.executor.memoryOverhead代表了这部分内存。
9.进程最大内存executor-memory
参数说明:该参数用于设置每个Executor进程的内存。Executor内存的大小,很多时候直接决定了Spark作业的性能。num-executors乘以executor-memory=最大内存i限制
10.流接受时间spark.streaming.blockInterval
设置Spark Streaming里Stream Receicer生成block的时间间隔,默认为200ms。这个时间间隔应该被StreamingBatch的时间间隔整除
spark.streaming.blockQueueSize决定了streamBlock最多能存储的容量,默认为10
11.数据本地性
网友评论