新增Shuffle调优之调节map端内存缓冲与reduce端占比

main
Oeljeklaus 7 years ago committed by GitHub
parent c35663d54d
commit 4e9ef95d2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -616,6 +616,7 @@ shuffle没调优shuffle就很糟糕了大量的map端输出文件的产生
这个时候,去开启这个机制,可以很有效的提升性能。
### Shuffle调优之调节map端内存缓冲与reduce端占比
**未调优之前**
spark.shuffle.file.buffer默认32k
spark.shuffle.memoryFraction0.2
@ -629,6 +630,7 @@ map端内存缓冲reduce端内存占比很多资料、网上视频
最终很多个性能调优的小点的效果,汇集在一起之后,那么就会有可以看见的还算不错的性能调优的效果
![map端内存缓冲与reduce端](map端内存缓冲与reduce端占比.png)
**原理描述**
reduce端task在拉取到数据之后会用hashmap的数据格式来对各个key对应的values进行汇聚。
针对每个key对应的values执行我们自定义的聚合函数的代码比如_ + _把所有values累加起来
@ -659,6 +661,7 @@ reduce端聚合内存占比。默认是0.2。如果数据量比较大reduc
这两个点之所以放在一起讲是因为他们俩是有关联的。数据量变大map端肯定会出点问题reduce端肯定也会出点问题出的问题是一样的都是磁盘IO频繁变多影响性能。
**优化思路**
调节map task内存缓冲spark.shuffle.file.buffer默认32kspark 1.3.x不是这个参数后面还有一个后缀kbspark 1.5.x以后
变了就是现在这个参数调节reduce端聚合内存占比spark.shuffle.memoryFraction0.2

Loading…
Cancel
Save