本篇文章首先通过大家熟知的一个参数spark.default.parallelism为引,聊一聊Spark并行度都由哪些因素决定?
上图是spark官网关于spark.default.parallelism参数说明:
对于reduceByKey和join这些分布式shuffle算子操作,取决于它的父RDD中分区数的最大值
对于没有父RDD的的算子,比如parallelize,依赖于集群管理器:
本地模式:取决于本地机器的核数
如果集群管理器是Mesos,则为8
其他的:对比所有executor上总核数与2比较,哪个大是哪个
当然上面这些都是默认值,如果我们自己设置了分区数,情况就会有所变化,直接看源码【查看org.apache.spark.Partitioner源码defaultPartitioner方法】
你会发现,如果你使用reducebykey、g
通过spark.default.parallelism谈Spark并行度
最新推荐文章于 2023-03-14 13:57:21 发布