2016-01-19 2 views
3

Я использую искру 1.5.2 в автономном режиме развертывания и запускаю скрипты. Память исполнителя устанавливается через «spark.executor.memory» в conf/spark-defaults.conf. Это устанавливает одинаковый предел памяти для всех рабочих узлов. Я хотел бы сделать так, что можно установить другой предел для разных узлов. Как я могу это сделать?Установить разные пределы памяти исполнителя для разных рабочих узлов

(Спарк 1.5.2, убунт 14.04)

Спасибо,

ответ

1

Я не верю, что есть какой-нибудь способ иметь неоднородно размер исполнителей. Вы можете ограничить размеры рабочих узлов, но это существенно ограничивает общий объем памяти, который работник может выделить в этом поле.

Когда вы запускаете приложение, вы можете указать только spark.executor.memory на уровне приложения, который запрашивает столько памяти для каждого исполнителя на одного работника.

Если вы находитесь в ситуации, когда у вас есть коробки с разнородным размером, то вы можете сделать SPARK_WORKER_MEMORY меньшим количеством, а затем установить более крупные значения SPARK_WORKER_INSTANCES = 2 и SPARK_WORKER_INSTANCES = 1 в меньшем поле. В этом примере мы предполагаем, что ваши большие ящики в два раза больше, чем меньшие. Затем вы в конечном итоге будете использовать всю память в больших коробках и всю память на меньших полях, имея в два раза больше исполнителей на больших ящиках.

Смежные вопросы