Как установить VCORES в hadoop mapreduce/yarn?

Ниже приведены мои конфигурации:

**mapred-site.xml**
map-mb : 4096 opts:-Xmx3072m
reduce-mb : 8192 opts:-Xmx6144m

**yarn-site.xml**
resource memory-mb : 40GB
min allocation-mb : 1GB

Vcores в кластере hadoop отображало 8 ГБ, но я не знаю, как вычислить или где его настроить.

надеюсь, что кто-то может мне помочь.


person Andoy Abarquez    schedule 23.10.2014    source источник


Ответы (3)


Короткий ответ

Скорее всего, это не имеет значения, запускаете ли вы hadoop из коробки в своем кластере с одним узлом или даже в небольшом персональном распределенном кластере. Вам просто нужно беспокоиться о памяти.

Длинный ответ

Виртуальные ядра используются для больших кластеров, чтобы ограничить ЦП для разных пользователей или приложений. Если вы используете YARN для себя, нет реальной причины ограничивать ЦП вашего контейнера. Вот почему в Hadoop по умолчанию даже не учитываются виртуальные ядра!

Попробуйте установить для доступных ядер nodemanager значение 1. Это не имеет значения! Ваше количество контейнеров по-прежнему будет 2 или 4 .. или любое другое значение:

yarn.nodemanager.resource.memory-mb / mapreduce.[map|reduce].memory.mb

Если вы действительно хотите, чтобы количество контейнеров учитывало виртуальные ядра и ограничивалось:

yarn.nodemanager.resource.cpu-vcores / mapreduce.[map|reduce].cpu.vcores

тогда вам нужно использовать другой калькулятор ресурсов. Перейдите к своей конфигурации capacity-scheduler.xml и измените DefaultResourceCalculator на DominantResourceCalculator.

В дополнение к использованию виртуальных ядер для выделения контейнеров вы хотите использовать виртуальные ядра, чтобы действительно ограничить использование ЦП каждым узлом? Вам нужно изменить еще больше конфигураций, чтобы использовать LinuxContainerExecutor вместо DefaultContainerExecutor, потому что он может управлять контрольными группами linux, которые используются для ограничения ресурсов ЦП. Подпишитесь на эта страница, если вам нужна дополнительная информация об этом.

person Nicomak    schedule 27.10.2015
comment
Не могли бы вы взглянуть на stackoverflow.com/questions/37791362/ Я столкнулся с проблемой оптимизации ресурсов моего кластера. yarn.nodemanager.resource.memory-mb / mapreduce.[map|reduce].memory.mb для меня это 8. Но все же одновременно работает только 4 маппера на машину. - person pratpor; 17.06.2016

yarn.nodemanager.resource.cpu-vcores — количество ядер ЦП, которые можно выделить для контейнеров.

mapreduce.map.cpu.vcores — количество виртуальных ядер ЦП, выделенных для каждой задачи карты задания.

mapreduce.reduce.cpu.vcores — количество виртуальных ядер ЦП для каждой задачи сокращения задания.

person vishnu    schedule 23.10.2014
comment
Спасибо за ответ, просто уточняющий вопрос. можно ли настроить vcores в кластере с одним узлом? я просто использую свой ноутбук с 6 ГБ оперативной памяти - person Andoy Abarquez; 23.10.2014

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

Сущности и их отношения Для каждого приложения/задания 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