在 Spark 中诊断长作业

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

长阶段

阶段 I/O 详细信息

若要查看有关此阶段执行内容的高级数据,请查看输入输出洗牌读取洗牌写入列:

长阶段 I/O

这些列表示以下内容:

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

如果你不熟悉洗牌是什么,现在是 了解 这意味着什么的好时机。

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

任务数

较长的阶段中任务的数量可以指引你找到问题的方向。 可以通过查看此处来确定任务数:

确定任务数

如果你发现有一个任务,那可能是问题的迹象。 有关详细信息,请参阅 一个 Spark 任务

查看更多阶段详细信息

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

舞台信息

现在你正在阶段页面,请参阅“倾斜”和“溢出”