Ответ 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