为什么spark ui中的总正常运行时间不等于所有作业持续时间之和

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

我运行一个spark任务,并尝试更快地调整它。奇怪的是,总的正常运行时间是1.1小时,但我把所有的工作时间加起来。只需要25分钟。我很好奇为什么spark ui中的总正常运行时间不等于所有作业持续时间的总和?
这是spark ui信息。总正常运行时间为1.1小时。
总启动时间
但是所有工作的持续时间总和大约是25分钟
非常感谢

z6psavjg

z6psavjg1#

Total uptime 是自spark应用程序或驱动程序启动以来的时间。 Jobs durations 是处理上的任务所花费的时间 RDDs/DataFrames .
驱动程序执行的所有语句都会影响总正常运行时间,但不一定影响作业持续时间。例如:

val rdd: RDD[String] = ???
(0 to 100).foreach(println)  // contribute in total uptime not in job duration
Thread.sleep(10000)          // contribute in total uptime not in job duration
rdd.count                    // contribute in total uptime as well as in job duration

另一个例子是Spark红移连接器的工作原理。从红移读取或写入时,每次执行查询(dag)都会发出 COPY / UNLOAD 命令将数据写入s3或从s3写入数据。
在这个操作过程中,执行者不做任何工作,驱动程序被阻塞,直到数据传输到s3完成。这一次将增加总的正常运行时间,但不会显示在 Job duration . 关于该问题的进一步行动 DataFrame (现在从s3内部读取文件)将添加到 Job duration

相关问题