作业时间线是了解管道或查询的绝佳起点。 它概述了正在运行的内容、每个步骤的运行时间,以及是否一路上出现任何故障。
如何打开作业时间线
在 Spark UI 中,单击“ 作业 ”和 “事件时间线 ”,如以下屏幕截图中红色突出显示。 你将看到时间线。 此示例显示已添加的驱动器和执行器 0:
需注意的要点
以下各节介绍如何阅读事件时间线,以发现性能或成本问题的可能原因。 如果你注意到时间线中的任何一个趋势,则每个相应部分的末尾都包含指向提供指导的文章的链接。
作业失败或执行器失败
下面是事件时间线中失败的作业和删除的执行程序的示例,该执行程序由红色状态指示。
如果看到失败的作业或执行程序失败,请参阅 “失败的作业”或“执行程序”已删除。
执行中的不足之处
请查找一分钟或更长的时间间隔,例如以下示例:
本示例有多个空白,其中一些由红色箭头突出显示。 如果你在时间线中看到差距,它们是否是一分钟以上? 由于驱动程序正在协调工作,预计会出现短时间的间隙。 如果存在较长的间隔,它们是否位于管道中间? 或者这个群集是否一直在运行,因此间隙是由活动暂停造成的? 可以根据工作负荷的启动和结束时间来确定这一点。
如果在流水线中间看到未解释的长时间间隙,请参阅 Spark 作业之间的间隙。
长作业
时间线是否被一个或几个长任务主导? 这些漫长的工作将是一些要调查的事情。 在以下示例中,工作负载中有一个作业显著长于其他作业。 这是调查的好目标。
单击最长的任务以深入了解。 有关调查此长阶段的信息,请参阅 在 Spark 中诊断长作业。
许多小工作
我们在这里寻找的是一个由小任务主导的时间表。 它可能如下所示:
请注意所有微小的蓝色线条。 每个任务都是一个仅需几秒钟或更短时间的小工作。
如果时间线大多是小型作业,请参阅 许多小型 Spark 作业。
以上都不是
如果时间线看起来与上述任何一个都不一样,下一步是确定最长的任务。 按工期对作业进行排序,然后单击最长作业说明中的链接:
进入最长作业的页面后,可以在 Spark 中诊断长作业 中找到有关调查此长作业的更多信息。