我从我的工作概述页面中看到,我的工作似乎停留在某个阶段(大多数其他人都花费了合理的时间,其中一个要慢得多)。
当我的一个阶段需要这么长时间才能完成时,这意味着什么?
我从我的工作概述页面中看到,我的工作似乎停留在某个阶段(大多数其他人都花费了合理的时间,其中一个要慢得多)。
当我的一个阶段需要这么长时间才能完成时,这意味着什么?
您最有可能遇到的问题是skew。
偏斜被定义为 Spark 阶段完成的工作的不平衡,即某些任务无论出于何种原因需要比其他任务更长的时间来计算。
重要的是要验证您的工作确实存在偏差,而不仅仅是假设这是罪魁祸首。
偏斜的最常见原因之一是 shuffle 的密钥分布不平衡。这方面的一个例子是当一个连接在连接的两边都有大量的键行数时。有一些方法可以验证这个分布问题。
有时你可能会很不走运,并且有一项既耗时又在阶段结束时开始的任务。发生这种情况时,您会发现阶段执行时间特别慢;有时你很幸运,它会先开始。在此示例中,较慢的 5 秒任务是倾斜任务。