Как увеличить количество контейнеров в nodemanager в YARN

Узел в моем кластере YARN имеет 64 ГБ памяти и 24 ядра. Я установил следующие свойства в yarn-site.xml:

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>32768</value>
</property>
<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>16</value>
</property>

Но я обнаружил, что у менеджера узлов в узле всего 7 контейнеров. Какие еще свойства мне нужно установить?


person kee    schedule 16.11.2013    source источник


Ответы (2)


Вам нужно сообщить YARN, как разбить память на контейнеры, например, если вы установите память на контейнер на 2 ГБ, вы получите 16 контейнеров.

<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
person Arnon Rotem-Gal-Oz    schedule 16.11.2013
comment
Спасибо. Ваш ответ заставил меня понять, что у меня была опечатка в параметре memory-mb (я использовал подчеркивание вместо тире между memory и mb). - person kee; 17.11.2013
comment
В моем кластере 7 узлов [8 ГБ ОЗУ и 4 VCPU на каждый узел]. Есть mapreduce.jobsubmitter: количество разделений ввода: 34 для моего приложения. Мое приложение аварийно завершает работу при Exception from container-launch: ExitCodeException exitCode=134: /bin/bash: строка 1: 3876 Aborted (дамп ядра) . Как этого избежать? Какой должна быть моя конфигурация в ampred-site.xml? - person Tariq; 18.02.2015
comment
@Arnon Rotem-Gal-Oz: новичок в Hadoop/YARN. OP имеет 64 ГБ памяти. Если мы выделим 2048 Мб (т.е. 2 Гб) на каждый контейнер, он должен получить 64/2 = 32 контейнера. Объясните, почему 16? Спасибо. - person Bhushan; 21.04.2015
comment
Используете ли вы map/reduce -if, поэтому вам также следует установить свойства для выделения карты/уменьшения (как написал @avner ниже) - person Arnon Rotem-Gal-Oz; 22.04.2015
comment
@ArnonRotem-Gal-Oz. Таким образом, указание 2 ГБ в качестве размера контейнера будет означать, что мой Java Xmx не может превышать 2 ГБ, потому что, если я это сделаю, то, когда Java попытается увеличить размер своей кучи во время выполнения за пределы 2 ГБ, YARN убьет его? - person Sumit Nigam; 27.07.2015
comment
В качестве Application Manager Framework (например, MapReduce или Spark), как вы запрашиваете количество контейнеров для каждого задания. Я знаю, что это может быть dynmaic означает, что AM может запросить больше контейнера в течение своего жизненного цикла, но какой параметр он использует для этого? - person nir; 08.10.2015

попробуйте что-то вроде:

  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>1024</value>      
  </property>

  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>2048</value>      
  </property>
person avner    schedule 21.07.2014