spark优化三部曲(三)--参数调优

spark优化三部曲(三)--参数调优,第1张

spark优化三部曲(三)--参数调优

前文:spark优化三部曲(二)--代码优化_dkk2014的博客-CSDN博客

1.shuffle参数

shuffle参数大都是围绕,单词读写的数据量大小,io,网络稳定性等

spark官网-- shuffle参数

2.timeout参数

目的是为了提高稳定性

spark.network.timeout=120s //默认120s

3.本地性参数

发生任务倾斜的时候可以设置,可查看我这篇文章

spark的task分布不均匀,某些executor没有领取任务_dkk2014的博客-CSDN博客_spark task分布不均匀

4.内存模型参数

可以调整内存模型的各个分区比例和开启堆外内存(不建议开启堆外,任务会不稳定)

可自行搜索 spark统一内存管理

spark官网-内存管理

5.JVM参数

打印日志,根据不同的垃圾回收处理器设置参数等

通常在GC状态不好(web ui看飙红)的时候开启。

这边建议开启G1,G1对大数据处理非常友好

--conf 'spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseG1GC'

6.AQE参数

解决spark sql的大部分数据倾斜,小文件问题,动态分区裁剪,以及最优解的join等

spark官网-runtime参数
 

7.num-executors  executor-cores  executor-memory

 这可能是spark新人最经常接触也最迷惑的点了

先给个通用配置

num-executors 看任务整体并发度(被划分成了多少个task)

executor-cores=2 

executor-memory=8G-16G

如果有多线程安全问题(比如mapPartition里有线程不安全的 *** 作)

executor-cores=1(只能为1)

executor-memory=4G-16G

了解更多看我另外一篇文章spark如何合理的分配资源(executor-memory,num-executors,executor-cores)_dkk2014的博客-CSDN博客

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5690684.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存