Невозможно увеличить рабочую память выше 2 ГБ в оболочке с газированной водой

При запуске sparkling-shell:

bin/sparkling-shell

Возникает следующая ошибка:

org.apache.spark.SparkException: Asked to launch cluster with 2048 MB RAM / worker but requested 20480 MB/worker

Мы установили следующее в spark-env.sh:

export SPARK_WORKER_MEMORY=108GB
export SPARK_WORKER_INSTANCES=4

И следующее в spark-defaults.conf:

spark.executor.memory   20g
spark.driver.memory     8g

Единственный способ запустить оболочку - сбросить до 2 ГБ рабочей памяти:

spark.executor.memory   2g

Но этого просто недостаточно для управления нашей работой. Кто-нибудь нашел решение этой проблемы?

2 ответа

Могу ли я спросить, что является содержанием вашего MASTER переменная окружения?

Это может произойти, если вы установили MASTER в "local-cluster[numOfExecutors,numOfExecutorCores,numOfExecMemory]" где numOfExecMemory ниже, чем ваш запрос памяти в файле spark-defaults.

В вашем файле spark-defaults.conf есть опечатка:

spark.executor.memory   20g
spark.driver.memory     8g

Здесь значение spark.executor.memory равно 20 г (20 гигабайт = 20480 мб), что соответствует 20480 мб на рабочий узел. Поэтому ошибка ->

org.apache.spark.SparkException: Asked to launch cluster with 2048 MB RAM / worker but requested 20480 MB/worker

где написано, что вы попросили сформировать кластер с 20480 МБ на одного работника.

Вы должны отредактировать spark.executor.memory 20g файл spark-defaults.conf для spark.executor.memory 2g

Если вы хотите увеличить память на одного работника, просто измените 2g на желаемое монтирование.

Также отредактируйте файл spark-env.sh следующим образом:

export SPARK_WORKER_MEMORY=108GB
export SPARK_WORKER_INSTANCES=4

создаст 4 рабочих экземпляра на узел с 1 ГБ памяти каждый.

Так что если вы хотите, например, 4gb каждого узла, то в spark-env.sh

export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_INSTANCES=1

и spark-defaults.conf как:

spark.executor.memory   4g
spark.driver.memory     8g
Другие вопросы по тегам