如果没有一个执行者少于RDD中的分区,那么如何处理RDD?

时间:2018-12-12 13:15:49

标签: apache-spark

我想知道以下问题的答案。

如果没有一个执行者少于RDD中的分区,如何处理RDD?

1 个答案:

答案 0 :(得分:0)

这是非常普遍的情况;实际上,您通常会配置作业,以使任务比执行者更多(请参见https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

Spark将为每个分区创建一个任务,并在可用的执行程序之间共享任务(请记住,执行程序可能具有多个核心,因此它可以同时处理多个任务)。

因此,每个执行者将处理自己的分区份额,直到全部处理完毕。

Spark还将在可能的情况下(例如,“本地性”-参见What's the meaning of "Locality Level"on Spark cluster),将任务分配给数据本地的执行者,以最大程度地减少需要在集群中移动的数据量。