Spark性能调优篇八之shuffle调优

1 task的内存缓冲调节参数

2 reduce端聚合内存占比

spark.shuffle.file.buffer                     map task的内存缓冲调节参数,默认是32kb

spark.shuffle.memoryFraction          reduce端聚合内存占比,默认0.2

怎么判断在什么时候对这两个参数进行调整呢?

通过监控平台查看每个executor的task的shuffle write和shuffle read的运行次数,如果发现这个指标的运行次数比较多,那么就应该考虑这两个参数的调整了;这个参数调整有一个前提,spark.shuffle.file.buffer参数每次扩大一倍的方式进行调整,spark.shuffle.memoryFraction参数每次增加0.1进行调整。

shuffle产生大量文件

为了解决shuffle产生大量文件的问题,我们可以在map端输出的位置,将文件进行合并操作,即使用

spark.shuffle.consolidateFiles 参数来合并文件,具体的使用方式为

new SparkConf().set("spark.shuffle.consolidateFiles","true")

作者:z小赵
链接:https://www.jianshu.com/p/069c37aad295
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/weijiqian/p/14004352.html