Я предполагаю, что вы выполняете свои задания в YARN, если да, вы можете проверить следующие свойства.
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.resource.memory-mb
yarn.scheduler.maximum-allocation-vcores
yarn.nodemanager.resource.cpu-vcores
В YARN эти свойства будут влиять на количество контейнеров, которые могут быть созданы в NodeManager на основеspark.executor.cores, spark.executor.memory
значения свойств (вместе с накладными расходами памяти исполнителя)
Например, если кластер с 10 узлами (ОЗУ: 16 ГБ, ядра: 6) и установлен со следующими свойствами пряжи
yarn.scheduler.maximum-allocation-mb=10GB
yarn.nodemanager.resource.memory-mb=10GB
yarn.scheduler.maximum-allocation-vcores=4
yarn.nodemanager.resource.cpu-vcores=4
Тогда со свойствами искры spark.executor.cores=2, spark.executor.memory=4GB
вы можете ожидать 2
Executors / Node, итого вы получите 19 исполнителей + 1 контейнер для драйвера
Если свойства искры spark.executor.cores=3, spark.executor.memory=8GB
, то вы получите 9Executor (только 1 Executor / Node) + 1 контейнер для драйвера
вы можете обратиться к ссылке для более подробной информации
Надеюсь, это поможет