До сих пор я использовал Spark только в кластере Hadoop с YARN в качестве менеджера ресурсов.В этом типе кластера я точно знаю, сколько исполнителей нужно запустить и как работает управление ресурсами.Однако, знайте, что я пытаюсь использовать Автономный кластер искр, я немного запутался.Поправьте меня, где я ошибаюсь.
Начиная с этой статьи , по умолчанию рабочий узел использует всю память узла минус 1 ГБ.Но я понимаю, что, используя SPARK_WORKER_MEMORY
, мы можем использовать меньше памяти.Например, если общий объем памяти узла составляет 32 ГБ, но я указываю 16 ГБ, Spark worker не будет использовать больше 16 ГБ на этом узле?
А как же исполнители?Скажем, если я хочу запустить 2 исполнителя на узел, могу ли я сделать это, указав память исполнителя во время spark-submit
равной половине SPARK_WORKER_MEMORY
, и если я хочу запустить 4 исполнителя на узел, указав память исполнителячетверть SPARK_WORKER_MEMORY
?
Если так, то, кроме памяти исполнителя, мне бы, я думаю, пришлось бы также правильно указывать ядра исполнителя.Например, если я хочу запустить 4 исполнителей на одном работнике, мне нужно будет указать ядра исполнителей в четверти SPARK_WORKER_CORES
?Что произойдет, если я укажу большее число, чем это?Я имею в виду, если я укажу память исполнителя как четверть SPARK_WORKER_MEMORY
, а ядра исполнителей - только половину SPARK_WORKER_CORES
?Получу ли я в этом случае 2 или 4 исполнителя на этом узле?