如何处理 Spark 中分布的偏斜

How to deal with Skewness on distribution in Spark

我在 spark 集群中的数据分布有问题,因为我需要一起处理的许多对象具有相同的键。因此,许多任务很快结束,但其中一个任务继续运行,直到执行程序的内存边界和集群应用程序出错并停止。该图像显示了历史服务器内部发生的情况。

这是分布式计算中最大的挑战之一:分配每个任务的有效负载,以便获得最大性能。

换句话说,您需要平衡每个任务的工作量w.r.t。到其他任务。

您需要重新考虑您的问题并以另一种方式解决它(按照建议找到一个 "secondary" 键),或者尝试执行一个仅适用于大任务的作业(即分发任务本身)。