Планирование ресурсов Spark — автономный менеджер кластера

У меня есть тестовая машина с довольно низкой конфигурацией для моих конвейеров данных, разработанных в Spark. Я буду использовать только один экземпляр AWS t2.large, в котором всего 2 ЦП и 8 ГБ ОЗУ.

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

Итак, у меня есть мастер и один рабочий, которые находятся на одной машине.

У меня есть несколько общих вопросов: 1) Сколько экзекьюторов может работать на одного воркера? Я знаю, что по умолчанию он один, но есть ли смысл его менять?

2) Может ли один исполнитель выполнять несколько приложений, или один исполнитель предназначен только для одного приложения?

3) Есть ли способ заставить это работать, чтобы установить память, которую приложение может использовать в файле конфигурации, или когда я создаю искровой контекст?

Спасибо


person Srdjan Nikitovic    schedule 03.05.2016    source источник
comment
Проверьте это, ответим на ваши вопросы: blog.cloudera.com/blog/2015/03/ и blog.cloudera.com/blog/2014/05/   -  person Serhiy    schedule 04.05.2016
comment
Я не думаю, что это поможет мне, потому что первый документ просто говорит о том, как структурировать преобразование, а второй говорит о Spark на Yarn - › У меня есть Standalone CLuster Manager   -  person Srdjan Nikitovic    schedule 04.05.2016


Ответы (1)


Сколько исполнителей может работать на одного воркера? Я знаю, что по умолчанию он один, но есть ли смысл его менять?

Это имеет смысл только в том случае, если у вас достаточно ресурсов. Скажем, на машине с 24 ГБ и 12 ядрами можно запустить 3 экзекьютора, если вы уверены, что 8 ГБ достаточно для одного экзекьютора.

Может ли один исполнитель выполнять несколько приложений или один исполнитель предназначен только для одного приложения?

Нет, каждое приложение запускает своих исполнителей.

Есть ли способ заставить это работать, чтобы установить память, которую приложение может использовать в файле конфигурации, или когда я создаю искровой контекст?

Я не уверен, что понимаю вопрос, но есть 3 способа предоставить конфигурацию для приложений.

  • файл spark-defaults.conf, но не забудьте включить чтение свойств по умолчанию при создании нового экземпляра SparkConf.
  • предоставление системных свойств через -D при запуске приложения или --conf, если это spark-submit или spark-shell. Хотя для параметров памяти есть определенные параметры, такие как spark.executor.memory или spark.driver.memory и другие, которые необходимо использовать.
  • предоставляет те же параметры через новый экземпляр SparkConf, используя его методы set.
person evgenii    schedule 04.05.2016