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



我运行了一个Spark作业,并试图更快地调整它。奇怪的是,总的正常运行时间是1.1小时,但我把所有的工作时间加起来。只需要25分钟。我很好奇为什么Spark UI中的总正常运行时间不等于所有作业持续时间的总和?

这是Spark UI信息。总正常运行时间为1.1小时。

总启动时间

但所有工作的总时长约为25分钟所有作业的持续时间

非常感谢

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

另一个例子是火花红移连接器的工作原理。从红移读取或写入时执行的每个查询(DAG(都会发出COPY/UNLOAD命令,将数据写入s3。

在此操作期间,执行器不执行任何工作,并且驱动程序被阻止,直到完成向s3的数据传输。这一时间将增加总正常运行时间,但不会显示在Job duration中。对DataFrame(现在从s3内部读取文件(的进一步操作将添加到Job duration

最新更新