spark配置总结

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.数据本地性

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容