Невозможно увеличить рабочую память выше 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