Конфигурация искры: память/экземпляр/ядра

В последнее время я немного смутился между различными настройками SPARK spark.executor.memory, SPARK_WORKER_MEMORY, SPARK_MEM, SPARK_MASTER_MEMORY, а отношение к SPARK_WORKER_INSTANCES и SPARK_WORKER_CORES

Я нашел этот пост, но он не обсуждает SPARK_MASTER_MEMORY Конфигурация искры: SPARK_MEM против SPARK_WORKER_MEMORY

Ответ 1

Прежде всего, несколько слов о терминах. Spark master - это приложение, которое координирует выделение ресурсов из подчиненных. Мастер не выполняет никаких вычислений. Мастер - это просто менеджер ресурсов.

Spark worker - это приложение для рабочего node, которое координирует ресурсы для данного рабочего node.

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

Проверьте этот документ для получения дополнительной информации - http://spark.apache.org/docs/latest/cluster-overview.html

spark.executor.memory - количество памяти для исполнителя. Эта память используется для заданной пользовательской задачи.

SPARK_WORKER_MEMORY - сколько системной памяти может быть использовано рабочим для создания исполнителей на node. Например, у вас есть 64gb на node. Вы устанавливаете SPARK_WORKER_MEMORY на 60gb. Это означает, что вы можете создать 2 x 30g исполнителей или 10 x 6gb исполнителей и т.д.

SPARK_MEM AFAIK больше не используется. Я не могу найти его в текущих документах

SPARK_MASTER_MEMORY - это память для мастера. Не должно быть высокого:)

SPARK_WORKER_CORES - общее количество ядер, которые будут использоваться исполнителями каждым рабочим

SPARK_WORKER_INSTANCES - количество рабочих на одного рабочего node.

Все эти параметры описаны здесь - http://spark.apache.org/docs/latest/spark-standalone.html