#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. Во всем кластере.