为什么spark任务id没有按顺序执行?

vqlkdk9b  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(457)

我运行最简单的程序wordcount,代码如下:

  1. val text = spark.read.textFile("/datasets/wordcount_512m.txt")
  2. text.flatMap(line => line.split(" ")).groupByKey(identity).count().collect()

我的hdfs块大小是128mb,有两个执行器,每个执行器有两个内核。我查看了spark用户界面,在第0阶段,这很正常。

有四个任务并行运行。
但是在第一阶段发生了一件奇怪的事情,一些任务id没有按顺序执行。


如图所示,一些较大的任务id在小任务id之前运行(任务91在任务0之前运行)。这些异常任务ID代表什么?

axzmvihb

axzmvihb1#

作业中的spark阶段必须按顺序执行,否则在计算上就没有意义了。
在一个阶段中有任务-每个分区1个。这些任务按什么顺序执行并不重要,只要它们完成就行。这就是并行计算的概念-没有依赖关系。这些的时间安排并不相关。

相关问题