2016-04-04 2 views
4

У меня есть установка (1.6) автономного кластера. имеют 1 мастер и добавили 3 машины в файле conf/slaves в качестве рабочих. Несмотря на то, что я выделил 4 ГБ памяти каждому из моих работников в искры, почему он использует только 1024 МБ при запуске приложения? Я бы хотел, чтобы он использовал все 4 ГБ, выделенные ему. Помогите мне выяснить, где и что я делаю неправильно.Spark рабочий память

Ниже приведен скриншот главной страницы искры (когда приложение работает с использованием spark-submit), где под колонкой Память она показывает 1024,0 МБ, которая используется в скобках рядом с 4.0 ГБ.

Я также попытался установить --executor-memory 4G опция с искровой подачей и не работает (как предложено в How to change memory per node for apache spark worker).

Эти варианты я установить в spark-env.sh файле

экспорт SPARK_WORKER_CORES = 3

экспорт SPARK_WORKER_MEMORY = 4g

экспорт SPARK_WORKER_INSTANCES = 2

enter image description here

ответ

3

Еще один обходной путь, это попытаться установить следующие параметры в файл conf/spark-defaults.conf:

spark.driver.cores    4 
spark.driver.memory    2g 
spark.executor.memory   4g 

После того, как вы установили выше (только последнюю строку в вашем случае) закрыть все рабочий сразу и перезапустить их. Лучше инициализировать память исполнителей таким образом, поскольку ваша проблема заключается в том, что ни один исполнитель не может выделить всю доступную память своего рабочего.

+0

Там, где это должно быть задано. Это должно быть в узле master (driver ???). В моем случае оба мастера и драйвера одинаковы. Как только я установил spark.executor.memory как 3g в spark-defaults.conf, используемая память увеличилась до 3g. Может быть, это было в документации, и я пропустил это. Но спасибо для начала. Поэтому я собираюсь отметить это как ответ. – B1K

+0

Добро пожаловать. Из моего понимания, передавая параметр «spark.executor.memory» через скрипт, инициализирует исполнителя на рабочем месте с указанной памятью. Хотя флаг '--executor-memory' в драйвере определяет, сколько памяти должно быть зарезервировано от каждого исполнителя, чтобы можно было выполнить задание на отправку. – raschild

0

Параметр, который вы ищете, это executor-memory try prov если вы начинаете его с вашего искрового приложения.

--executor-memory 4g

При установке рабочего-памяти 4g тогда самый большой исполнитель запускается на работника из 4g. PS: у вас могут быть разные конфигурации (каждая из которых имеет разную рабочую память).

+0

Как я уже упоминал в моей должности, я стараюсь --executor-памяти вариант 4G, когда я запустите мое приложение и все равно никаких изменений. Благодарю. – B1K

+0

вы пробовали 4g (где g не является капиталом) – Manas

+0

да, и это тоже не помогает! – B1K

0

создать файл с именем spark-env.sh в каталоге искровым/конф добавить эту строку SPARK_EXECUTOR_MEMORY = 4g

Смежные вопросы