诊断 Spark 中的长阶段

首先确定作业的最长阶段。 滚动到作业页面底部的阶段列表,并按持续时间对阶段进行排序:

长阶段

阶段 I/O 详细信息

若要查看有关此阶段所执行操作的概要数据,请查看“输入”、“输出”、“随机读取”和“随机写入”列

长阶段 I/O

这些列的含义如下:

  • 输入:此阶段从存储中读取了多少数据。 这可能是从 Delta、Parquet、CSV 等进行读取。
  • 输出:此阶段将多少数据写入了存储。 这可能是对 Delta、Parquet、CSV 等进行写入。
  • 随机读取:此阶段读取了多少随机数据
  • 随机写入:此阶段写入了多少随机数据

如果你不熟悉随机处理,现在正好可以了解其含义。

请记下这些数字,因为稍后可能需要用到。

任务数

长阶段中的任务数可能指明了问题的调查方向。 在此处可以通过查看以下信息来确定任务数:

确定任务数

如果只看到了一个任务,该任务可能是问题的原因。 有关详细信息,请参阅一个 Spark 任务

查看更多阶段详细信息

如果阶段有多个任务,应该进一步调查。 单击阶段说明中的链接以获取有关最长阶段的详细信息:

打开阶段信息

进入阶段的页面后,请参阅倾斜和溢写