为什么Spark不会在执行者之间重新分配任务?

时间:2015-08-26 15:56:20

标签: parallel-processing apache-spark emr

我正在运行一项99%完成的火花工作。最后1%需要很长时间,所以我检查了工作跟踪器。如截图所示,我们可以看到一些执行程序仍然有几个活动任务,而一些执行任务有0个任务。为什么Spark没有重新分配任务?

另外,对于花费很长时间的最后1%的工作,主要是由于内存问题,执行器核心数量还是......?有没有办法找出原因?

谢谢!

enter image description here

1 个答案:

答案 0 :(得分:0)

进一步扩展@Holden的答案。她是对的,最可能的原因是你正在研究的RDD偏向于分区,这就是为什么你看到最后1%花费了无限长的时间。调试此方法的一种方法是检查每个分区的大小,如果您看到的分区比其他分区大得多,那么您必须平均地重新分区数据。

this stackoverflow question中详细解答了一个非常类似的问题。

相关问题