Spark on YARN utiliza menos vcores

Estoy usando Spark en un clúster YARN (HDP 2.4) con la siguiente configuración:

1 Masternode64 GB de RAM (50 GB utilizables)24 núcleos (19 núcleos utilizables)5 esclavos64 GB de RAM (50 GB utilizables) cada uno24 núcleos (19 núcleos utilizables) cada unoConfiguraciones de HILOmemoria de todos los contenedores (de un host): 50 GBtamaño mínimo del contenedor = 2 GBtamaño máximo del contenedor = 50 GBvcores = 19mínimo # vcores / container = 1máximo # vcores / contenedor = 19

Cuando ejecuto mi aplicación spark con el comandospark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ... YARN crea 31 contenedores (uno para cada proceso de ejecución + un proceso de controlador) con la siguiente configuración:

Correcto: Contenedor maestro con 1 núcleo y ~ 1800 MB de RAMCorrecto: 30 contenedores esclavos con ~ 7 GB de RAM cada unoPERO INCORRECTO: cada contenedor esclavo solo se ejecuta con1 núcleo en lugar de 3, de acuerdo con la IU YARN ResourceManager (muestra solo 31 de 95 en uso, en lugar de 91 = 30 * 3 + 1), vea la captura de pantalla a continuación

Mi pregunta aquí: ¿Por qué elspark-submit parámetro--executor-cores 3 no tiene efecto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta