我们的轨迹数据挖掘代码使用2M数据很快完成,但是由于许多失败的任务,使用20M之类的较大数据失败。我们试图增加内存,但仍然失败。我们有3个具有4个核心和32GB RAM的机器集群。
我们的配置是

spark.executor.memory 26g
spark.executor.cores 2
spark.driver.memory 6g
当我们尝试解决该问题时,会出现错误信息,例如“缺少用于混洗位置的输出”,“达到最大执行程序失败数(3)”。

最佳答案

这似乎不是内存问题。您是否启用了动态资源分配-spark.dynamicAllocation.enabled?这将动态地增加您的执行者人数,直到达到物理极限为止。另外,希望您以群集模式提交作业。
https://spark.apache.org/docs/latest/job-scheduling.html#dynamic-resource-allocation

09-04 12:27
查看更多