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