Spark:使用驱动程序内存参数

时间:2018-11-09 18:03:54

标签: apache-spark yarn

提交此命令时,我的作业失败,并显示错误“容器正在运行,超出了物理内存限制”。

spark-submit --master yarn --deploy-mode cluster --executor-memory 5G --total-executor-cores 30 --num-executors 15 --conf spark.yarn.executor.memoryOverhead=1000

但是将参数-driver-memory 添加到5GB(或更高),作业将无错误结束。

spark-submit --master yarn --deploy-mode cluster --executor-memory 5G --total executor-cores 30 --num-executors 15 --driver-memory 5G --conf spark.yarn.executor.memoryOverhead=1000

集群信息:6个节点,具有120GB的内存。 YARN容器内存最小:1GB

问题是:使用或不使用此参数有什么区别?

1 个答案:

答案 0 :(得分:1)

如果增加驱动程序内存可以帮助您成功完成工作,则意味着驱动程序中有大量来自执行程序的数据。通常,驱动程序负责在执行任务后从每个执行程序收集回结果。因此,在您的情况下,增加驱动程序内存似乎有助于将更多结果存储回驱动程序内存中。

如果您阅读了有关执行程序内存,驱动程序内存以及驱动程序与执行程序交互的方式的一些要点,那么您将可以更好地了解自己所处的状况。

希望它会有所帮助。