Spark项目之用户行为【性能调优6】Shuffle-Map端文件合并

在了解Spark-Shuffle原理之后,我们看下实际生产环境中,减少Map端输出写入文件数量的优化效果,不了解的可以考古
Spark-Shuffle原理

实践:

实际生产环境的条件:
100个节点(每个节点一个executor):100个executor
每个executor:2个cpu core
总共1000个task:每个executor平均10个task
下个stage阶段也是1000个task

每个节点(10个task)
每个节点会输出map端文件=10(Task数量) * 1000(下一个阶段的Task数量)=1万个文件
注:每个task都会生成下一个阶段task数量的文件

总共有多少份map端输出文件?100 * 10000 = 100万。

优化参数

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

注:每个task都会生成下一个阶段task数量的文件

优化后结果:
100个节点(每个节点一个executor):100个executor
每个executor:2个cpu core
总共1000个task:每个executor平均10个task
下个stage阶段也是1000个task

每个节点(10个task)
每个节点会输出map端文件=2(cpu数量=生成文件数量,第二批的task会复用生成的文件) * 1000(下一个阶段的Task数量)=2000个文件

总共有多少份map端输出文件?100(节点数) * 2000(每个节点任务数) = 20万

注:以上参数仅适用于Spark1.2之前,因为该版本之后,默认shuffleManager为sortshuffleManager,会以cpuCore为单位,自动合并map端文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值