三、Spark性能调优——并行度调节

本文探讨了Spark作业中并行度的重要性,指出并行度过低可能导致资源浪费。理想的并行度应使任务数量与资源匹配,推荐设置为CPU核心数的2~3倍,以充分利用集群资源并提高作业性能。同时介绍了如何通过代码和提交参数来调节SparkSql的并行度。
摘要由CSDN通过智能技术生成
val conf = new SparkConf()
.set("spark.default.parallelism", "500")

Spark 作业中的并行度指各个 stage 的 task 的数量。

如果并行度设置不合理而导致并行度过低, 会导致资源的极大浪费,例如, 20个 Executor,每个 Executor 分配 3 个 CPU core, 而 Spark 作业有 40 个 task, 这样每个 Executor 分配到的 task 个数是 2 个, 这就使得每个 Executor 有一个 CPU core 空闲, 导致资源的浪费。

理想的并行度设置,应该是让并行度与资源相匹配, 简单来说就是在资源允许的前提下,并行度要设置的尽可能大, 达到可以充分利用集群资源。 合理的设置并行度, 可以提升整个 Spark 作业的性能和运行速度。

Spark 官方推荐, task 数量应该设置为 Spark 作业总 CPU core 数量的 2~3 倍。之所以没有推荐 task 数量与 CPU core 总数相等, 是因为 task 的执行时间不同, 有的 task 执行速度快而有的 task 执行速度慢, 如果 task 数量与 CPU core 总数相等,那么执行快的 task 执行完成后, 会出现 CPU core 空闲的情况。如果 task 数量设置为 CPU core 总数的 2~3 倍,那么一个 task 执行完毕后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值