Spark调优学习记录(四)CPU优化

并行度

RDD

spark.default.parallelism

设置RDD的默认并发度,没有设置时,由join、reduceByKey和parallelize等决定。

SQL

spark.sql.shuffle.partitions

shuffle reduce阶段默认的并行度,默认200。

并发度

同时执行的task数

CPU低效原因

并行度较低

数据分片过大,每个task跑时,所需的内存较大,导致其他task无法同时跑,降低并发度。导致其余cpu线程挂起浪费。

并行度过高

数据过于分散,用于调度的开销过多。

如何设置

并行度 = 并发度 * (2~3)倍

举例

调优前

0dfd18f9122d520456f6914205fce679.png

32635589a7dc17b6cb33d17d357e76b8.png

并发度:3 * 4 = 12,并行度:200.

结果:

ccd3f84d7bd8fee88b23d4b691febeb9.png

明显见到后两个节点的cpu浪费现象很明显。

调优后

f131af2cddc4b424f65e236b06c95675.png

提交命令相同

6418019724d710426d0b568024bc4fd0.png

e61a495dc8bc6a39e88b6db5a6ca44e6.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值