原文链接:https://blog.csdn.net/qq_26803795/article/details/81772265
spark参数调优需要对各个参数充分理解,没有一套可以借鉴的参数,因为每个集群规模都不一样,只有理解了参数的用途,调试出符合自己业务场景集群环境,并且能在扩大集群、业务的情况下,能够跟着修改参数才算是正确的参数调优。
本系列文章仅为个人理解与观点,如果任何地方有疑问与错误,欢迎评论指正!
(上次更新时间---2018-09-05 15:07)
1、背景
spark2.2.1版本(现升级到了2.3.1版本),其实官方文档中,相关的参数已经写的很详细了,这边仔细阅读了官方文档,
并结合了实际情景,实践之后,整理了这篇博客。
官方文档:
http://spark.apache.org/docs/2.2.1/configuration.html
yarn:
http://spark.apache.org/docs/2.2.1/running-on-yarn.html#configuration
2、参数详解
① Application Properties 应用基本属性
https://blog.csdn.net/zyzzxycj/article/details/82255979
② Runtime Environment 运行环境
https://blog.csdn.net/zyzzxycj/article/details/82256032
③ Shuffle Behavior
https://blog.csdn.net/zyzzxycj/article/details/82256081
④ Spark UI
https://blog.csdn.net/zyzzxycj/article/details/82256109
⑤ Compression and Serialization 压缩和序列化
https://blog.csdn.net/zyzzxycj/article/details/82256152
⑥ Memory Management 内存管理
https://blog.csdn.net/zyzzxycj/article/details/82256162
⑦ Executor behavior 执行器
https://blog.csdn.net/zyzzxycj/article/details/82256206
⑧ Networking 网络
https://blog.csdn.net/zyzzxycj/article/details/82256228
⑨ Scheduling 调度
https://blog.csdn.net/zyzzxycj/article/details/82256244
⑩ Dynamic Allocation 动态分配
https://blog.csdn.net/zyzzxycj/article/details/82256893
11 Spark Streaming
https://blog.csdn.net/zyzzxycj/article/details/82428031
11 Spark Streaming
spark.streaming.backpressure.enabled
反压,默认false,详细了解请移步https://blog.csdn.net/zyzzxycj/article/details/82385982
spark.streaming.backpressure.initialRate
当开启反压机制时,每个receiver在最初,能从每个batch接收的最大速率,默认not set。
spark.streaming.blockInterval
对于某个batch,receiver将其转化成数据的时间间隔,默认200ms,不建议调到小于50ms,不然处理数据的时间就会比申请线程的时间还小。
因此可以计算出Tasks=BatchInterval / BlockInterval
spark.streaming.receiver.maxRate
每个receiver接收的最大速率(每秒接收记录数),如果是<=0 则为无限,默认not set。
spark.streaming.receiver.writeAheadLog.enable
receiver日志,便于失败时的恢复,默认false
spark.streaming.unpersist
自动将spark streaming产生的、持久化的数据给清理掉,默认true,自动清理内存垃圾。
spark.streaming.stopGracefullyOnShutdown
优雅的关闭spark streaming jvm,默认false
spark.streaming.ui.retainedBatches
spark streaming 日志接口在gc时保留的batch个数,默认1000