倾斜和溢出

泄漏

在长时间运行的阶段,首先要查看是否有 溢出

在阶段页面顶部,你将看到详细信息,其中包括有关溢出的统计信息:

溢出统计信息

当 Spark 内存不足时,会发生溢出。 它开始将数据从内存移到磁盘,这可能相当昂贵。 在 数据洗牌期间,这是最常见的。

如果您看不到关于溢出的任何统计数据,这意味着该阶段没有数据溢出。 如果阶段有一些泄漏,请参阅 本指南 ,了解如何处理由混排引起的溢出。

偏斜

我们要研究的下一件事是是否存在 倾斜。 倾斜是指一个或少量几个任务比其他任务花费的时间长得多。 这会导致群集利用率低下和作业时间变长。

向下滚动到 摘要指标。 我们主要关注的是最大持续时间明显高于第75百分位的持续时间。 以下屏幕截图显示了一个正常的阶段,其中第 75 百分位和 最大值 相同:

倾斜统计

如果“最大”持续时间比第 75 百分位持续时间多 50%,则可能会遇到倾斜问题。

如果看到倾斜,请 在此处了解倾斜修正步骤。

无倾斜或溢写

如果未看到倾斜或溢出,请返回到作业页,大致了解发生了什么。 将页面滚动到顶部,然后单击关联的职位 ID

流水线到作业

如果阶段不存在数据溢出或数据倾斜,请参阅 Spark 阶段高 I/O,了解下一步骤。