诊断 Spark 中的长阶段
首先确定作业的最长阶段。 滚动到作业页面底部的阶段列表,并按持续时间对它们进行排序:
阶段 I/O 详细信息
若要查看有关此阶段所执行操作的概要数据,请查看“输入”、“输出”、“随机读取”和“随机写入”列:
这些列的含义如下:
- 输入:此阶段从存储中读取了多少数据。 这可能是从 Delta、Parquet、CSV 等进行读取。
- 输出:此阶段将多少数据写入了存储。 这可能是对 Delta、Parquet、CSV 等进行写入。
- 随机读取:此阶段读取了多少随机数据。
- 随机写入:此阶段写入了多少随机数据。
如果不熟悉 Shuffle 的含义,现在正是学习的大好时机。
记下这些数字,因为稍后可能需要用到它们。
任务数
长阶段中的任务数可能指明了问题的调查方向。 在此处可以通过查看以下信息来确定任务数:
如果只看到了一个任务,该任务可能是问题的原因。 有关详细信息,请参阅一个 Spark 任务。
查看更多阶段详细信息
如果阶段有多个任务,应该进一步调查。 单击阶段说明中的链接,获取有关最长阶段的详细信息:
你现在已在阶段页面,请参阅倾斜和溢出。