Как рассчитывается общая память YARN ResourceManager? - PullRequest
0 голосов
/ 21 мая 2018

Я использую кластер Spark в конфигурации 1 MasterNode, 3 WorkerNode с использованием aws emr и YARN-client, причем MasterNode является клиентским компьютером.Все 4 узла имеют 8 ГБ памяти и 4 ядра в каждом.Учитывая эту настройку оборудования, я установил следующее:

spark.executor.memory = 5G
spark.executor.cores = 3
spark.yarn.executor.memoryOverhead = 600

При такой конфигурации будет ли ожидаемый Total Memory, распознаваемый Yarn ResourceManager, равным 15 ГБ?Это показывает 18 ГБ.Я видел только использование пряжи до 15 ГБ при запуске приложений Spark.Это 15 ГБ из spark.executor.memory * 3 nodes?

Я хочу предположить, что общая память YARN рассчитывается как spark.executor.memory + spark.yarn.executor.memoryOverhead, но я нигде не могу найти это документированное.Как правильно найти точное число?

И я должен иметь возможность увеличить значение с spark.executor.memory до 6G, верно?Я получил ошибки в прошлом, когда он был установлен таким образом.Будут ли другие конфигурации, которые мне нужно установить?

Edit - так что похоже, что значение workerNodes для yarn.scheduler.maximum-allocation-mb равно 6114 или 6 ГБ.Это значение по умолчанию, которое EMR устанавливает для типа экземпляра.И поскольку 6 ГБ * 3 = 18 ГБ, это, вероятно, имеет смысл.Я хочу перезапустить Yarn и увеличить это значение с 6 ГБ до 7 ГБ, но не могу, поскольку этот кластер используется, поэтому я думаю, что мой вопрос остается в силе.

1 Ответ

0 голосов
/ 22 мая 2018

Я хочу предположить, что общая память YARN рассчитывается с помощью spark.executor.memory + spark.yarn.executor.memoryOverhead, но я не могу найти это нигде.Как правильно найти точное число?

Это вроде как правильно, но сказано в обратном направлении.Общая память YARN не зависит от конфигураций, которые вы настроили для Spark.yarn.scheduler.maximum-allocation-mb контролирует, сколько памяти YARN имеет доступ, и может быть найдено здесь .Чтобы использовать всю доступную память с Spark, вы должны установить spark.executor.memory + spark.yarn.executor.memoryOverhead равным yarn.scheduler.maximum-allocation-mb.См. здесь для получения дополнительной информации о настройке задания зажигания и этой электронной таблицы для расчета конфигураций.

И я должен иметь возможность увеличить значение spark.executor.memory до 6G, верно?

Исходя из таблицы, верхний предел spark.executor.memory равен5502M если yarn.scheduler.maximum-alloc-mb равен 6114M.Вычисляется вручную, это .9 * 6114, поскольку spark.executor.memoryOverhead по умолчанию executorMemory * 0.10, с минимальным значением 384 ( source )

...