Как работает spark.cores.max?

#apache-spark

#apache-spark

Вопрос:

Я запутался с определением spark.cores.max

Что у меня есть в Интернете, так это

 spark.cores.max represents the total number of CPU cores for the whole application
 

В моем кластере 8 рабочих узлов и 1 главный узел. Где каждый узел имеет 4 ядра и 100 ГБ оперативной памяти.

Означает ли это общее количество ядер на рабочий узел или во всех 8 рабочих узлах?

Если я установлю spark.cores.max равным 12, а core / executor равен 4, что это значит?

Ответ №1:

Из документов Spark:

При запуске в автономном кластере развертывания или кластере Mesos в «крупномасштабном» режиме совместного использования максимальное количество процессорных ядер, запрашиваемых для приложения со всего кластера (а не с каждой машины). Если не задано, по умолчанию будет использоваться spark.deploy.Значения по умолчанию в автономном диспетчере кластеров Spark или бесконечные (все доступные ядра) в Mesos.

spark.cores.max ограничивает количество ядер, которые будет использовать задание spark. Если вы не установите, он будет использовать ‘spark.deploy.Значение по умолчанию.

В вашем примере spark.executor.cores = 4 и spark.cores.max = 12 укажут, что в вашем задании будет три исполнителя (12/4) по 4 ядра в каждом.

установите spark.cores.max равным 12, а core / executor — 4

Это свойство позволит вам запускать несколько заданий одновременно в одном кластере spark.

С уважением

Комментарии:

1. вы имеете в виду 3 исполнителя во всем кластере или в одном узле?

2. Во всем кластере.