YARN上的Spark太少使用了vcores

D. *_*ler 6 resource-management hadoop-yarn hortonworks-data-platform apache-spark

我在YARN集群(HDP 2.4)中使用Spark,具有以下设置:

  • 1 Masternode
    • 64 GB RAM(可用50 GB)
    • 24核(可用19核)
  • 5 Slavenodes
    • 每个64 GB RAM(可用50 GB)
    • 每个24核(可用19个核)
  • YARN设置
    • 所有容器(一个主机)的内存:50 GB
    • 最小容器尺寸= 2 GB
    • 最大容器大小= 50 GB
    • vcores = 19
    • 最小#vcores/container = 1
    • 最大#vcores/container = 19

当我使用命令运行我的spark应用程序时,spark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...YARN使用以下设置创建31个容器(每个执行程序进程一个+一个驱动程序进程):

  • 正确:主容器有1个核心和~1800 MB RAM
  • 正确:30个从属容器,每个容器约7 GB RAM
  • 但是不正确:根据YARN ResourceManager UI(它只显示95个中的31个而不是91 = 30*3 + 1),每个从属容器只运行1个核心而不是3 个核心,请参见下面的截图

在此输入图像描述

我的问题是:为什么spark-submit参数--executor-cores 3没有效果?

D. *_*ler 7

好吧,似乎与此处讨论的问题相同:纱线不尊重yarn.nodemanager.resource.cpu-vcores该解决方案也适用于我.