Spark性能调优之合理设置并行度
1.Spark的并行度指的是什么?
spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度!
当分配完所能分配的最大资源了,然后对应资源去调节程序的并行度,如果并行度没有与资源相匹配,那么导致你分配下去的资源都浪费掉了。同时并行运行,还可以让每个task要处理的数量变少(很简单的原理。合理设置并行度,可以充分利用集群资源,减少每个task处理数据量,而增加性能加快运行速度。)
举例:
假如, 现在已经在spark-submit 脚本里面,给我们的spark作业分配了足够多的资源,比如50个executor ,每个executor 有10G内存,每个executor有3个cpu core 。 基本已经达到了集群或者yarn队列的资源上限。
task没有设置,或者设置的很少,比如就设置了,100个task 。 50个executor ,每个executor 有3个core ,也就是说
Application 任何一个stage运行的时候,都有总数150个cpu core ,可以并行运行。但是,你现在只有100个task ,平均分配一下,每个executor 分配到2个task,ok,那么同时在运行的task,只有100个task,每个executor 只会并行运行 2个task。 每个executor 剩下的一个cpu core 就浪费掉了!你的资源,虽然分配充足了,但是
Spark性能优化:最大化并行度设置

本文探讨了Spark性能调优中的关键点——合理设置并行度。解释了Spark并行度指的是作业中stage的task数量,并指出并行度应与资源匹配以避免浪费。介绍了提高并行度的方法,包括设置task数量为CPU核心的2~3倍,通过调整`spark.default.parallelism`,增加HDFS block数,使用`repartition`,以及在特定算子中指定partition数量等策略。
最低0.47元/天 解锁文章
955

被折叠的 条评论
为什么被折叠?



