Я случайно наткнулся на этот вопрос и в итоге мне удалось найти нужные мне ответы, поэтому постараюсь дать полный ответ.
Сущности и их отношения Для каждого приложения/задания Hadoop у вас есть Мастер приложений, который связывается с ResourceManager о доступных ресурсах в кластере. ResourceManager получает информацию о доступных ресурсах на каждом узле от каждого NodeManager. Ресурсы называются контейнерами (память и ЦП). Для получения дополнительной информации см. это.
Объявление ресурсов в кластере Каждый менеджер узлов предоставляет информацию о своих доступных ресурсах. Соответствующие настройки: yarn.nodemanager.resource.memory-mb
и yarn.nodemanager.resource.cpu-vcores
в $HADOOP_CONF_DIR/yarn-site.xml
. Они объявляют память и процессор, которые могут быть выделены для контейнеров.
Запрашивать ресурсы Для своих заданий вы можете указать, какие ресурсы необходимы для каждой карты/уменьшения. Это можно сделать следующим образом (это для задач карты).
conf.set("mapreduce.map.cpu.vcores", "4");
conf.set("mapreduce.map.memory.mb", "2048");
Это потребует 4 виртуальных ядра и 2048 МБ памяти для каждой задачи карты.
Вы также можете настроить ресурсы, которые необходимы для мастера приложений, таким же образом со свойствами yarn.app.mapreduce.am.resource.mb
и yarn.app.mapreduce.am.resource.cpu-vcores
.
Эти свойства могут иметь значения по умолчанию в $HADOOP_CONF_DIR/mapred-default.xml
.
Для получения дополнительных параметров и значений по умолчанию я бы рекомендовал вам взглянуть на это и это
person
Ivaylo Petrov
schedule
17.12.2014