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