我有一个YARN集群,有5个节点,其中4个是工作节点。
当我运行一个Spark作业时,我设置了"--num executors 4",但即使当我从Spark应用程序页面查看时,仍然只有3个活动的executors,这意味着一个节点什么都不做,原因是什么?
我遇到了完全相同的问题。我相信原因与YARN的内存管理有关(我不会假装理解!),但解决问题的方法是在配置文件中设置maximizeResourceAllocation
(如下所述http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-spark-configure.html)
在最近阿姆斯特丹举行的Spark峰会上,许多人提到,即使设置了这个设置,他们偶尔也会发现并不是所有的核心都被使用了,所以为了确保所有的核心被使用,我从--executor-cores X
开始工作,其中X是我的执行器上可用的核心数量。
我希望这对你有帮助。