У меня очень маленький кластер с 2 узлами Hadoop-HBase
.Я выполняю MapReduce
рабочих мест на нем.Я использую Hadoop-2.5.2
.У меня 32 ГБ (узлы имеют 64 ГБ памяти каждый) бесплатно для MapReduce
в каждом узле с конфигурацией на сайте пряжи следующим образом
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>32768</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>15</value>
</property>
Мои требования к ресурсам составляют 2 ГБ для каждого выполняемого преобразователя / преобразователя.Я настроил это в mapred-site.xml
Учитывая эти конфигурации, с общим объемом памяти около 64 ГБ и 30 vcore, я вижу, что параллельно выполняется около 31 преобразователя или 31 преобразователя.
Хотя все это нормально,есть одна часть, которую я пытаюсь выяснить.Количество преобразователей или редукторов, выполняющихся параллельно, не одинаково на обоих узлах, один из узлов имеет большее количество задач, чем другой.Почему это происходит?Можно ли это контролировать?Если да, то как?
Я полагаю, что YARN не рассматривает это как ресурсы узла, а скорее как ресурсы кластера, и порождает задачи везде, где это возможно в кластере.Это понимание правильно?Если нет, каково правильное объяснение упомянутого поведения во время выполнения MR?