在什么情况下,一个阶段中的所有任务都在同一个执行器中执行

时间:2017-10-19 07:12:40

标签: apache-spark

我有一个火花应用程序。它会多次连接一些表并将结果写入HDFS。

我的提交脚本:

spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 14G \
--driver-cores 6 \
--executor-memory 14G \
--executor-cores 4 \
--num-executors 50 \
--conf spark.sql.autoBroadcastJoinThreshold=31457280 \
--conf spark.sql.shuffle.partitions=200 \
--class my.main.class\
my.jar

问题: 在Spark WebUI中,我喜欢各个阶段在同一个exector中执行: all executor 为什么在同一个执行器pc-xxxx269中执行一个阶段的200个任务? enter image description here

1 个答案:

答案 0 :(得分:0)

可能会以两种方式发生  1。没有适用的分区  2。如果您使用散列分区,则所有Keys散列值都足够接近