我在YARN集群(HDP 2.4)中使用Spark,具有以下设置:
当我使用命令spark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...
运行我的spark应用程序时,YARN使用以下设置创建31个容器(每个执行程序进程一个+一个驱动程序进程):
我的问题在这里:为什么spark-submit
参数--executor-cores 3
没有效果?
好的,似乎与此处讨论的问题相同:yarn is not honouring yarn.nodemanager.resource.cpu-vcores该解决方案对我也有用。
使用Ambari时:
用户界面可能会产生误导。当在YARN中禁用vcore强制执行时,它将只假设每个容器有一个核心,而实际上,如果查看物理机器的实际CPU使用情况,它可能会使用所有核心。还要检查SparkUI上的核心用法,这通常可以更好地了解实际的CPU使用情况。