Расчетная куча кластера Giraph xxxxMBs превышает текущую доступную кучу кластеров в 0MB.Прерывание работы - PullRequest
0 голосов
/ 02 октября 2018

Я использую giraph-1.3.0-SNAPSHOT (сборка с профилем -Phadoop_yarn) и hadoop-2.8.4 в кластере Amazon EC2.Мой кластер состоит из 4 машин t2.large, каждая из которых имеет 8 ГБ ОЗУ и 2 процессора (в будущем мне придется использовать 20 компьютеров c3.8xarge, каждая из которых имеет 60 ГБ ОЗУ и 32 ЦП).Я заблокирован в связи с этой проблемой: «Предполагаемый размер кучи кластера Giraph xxxxMBs превышает текущую доступную кучу кластера в 0 МБ. Aborting Job».Я перечитываю этот предыдущий пост Предполагаемая куча кластера Гирафа 4096 МБ больше, чем текущая доступная куча кластеров 0 МБ.Прерывание задания , но я не понял, что вызвало проблему в моем случае, так как я настроил имя yarn.resourcemanager.hostname (см. Ниже) и моя группа безопасности открыта для всего трафика.Может быть, я пропускаю некоторые настройки (или некоторые порты)?

Кроме того, у меня есть следующие вопросы:
- Так как Giraph не использует уменьшение, а только карту, правильно ли назначать меньше памяти для mapreduce.reduce.memory.mb чем память, выделенная для mapreduce.map.memory.mb?Может быть, было бы правильно назначить даже 0 МБ для mapreduce.reduce.memory.mb, так как giraph не использует Reduce?
- я прочитал http://giraph.apache.org/quick_start.html, что mapred.tasktracker.map.tasks.maximum и mapredДля .map.tasks должно быть установлено значение 4, поскольку «по умолчанию hadoop позволяет запускать сразу 2 сопоставителя. Однако в коде Giraph предполагается, что мы можем запускать одновременно 4 сопоставителя».Следовательно, для этих свойств всегда должно быть установлено значение 4?

Это моя конфигурация.Я сообщил только о mapred-site.xml и yarn-site.xml, потому что в других файлах конфигурации hadoop я уверен, что они правильные.

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.jobtracker.address</name>
        <value>{HOSTNAME}:54311</value>
    </property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.tasktracker.map.tasks.maximum</name>
        <value>4</value>
    </property>
    <property>
        <name>mapred.map.tasks</name>
        <value>4</value>
    </property>
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>4608</value>
    </property>
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>512</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property> 
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>{HOSTNAME}</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>2048</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>6144</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>6144</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

Я попробовал эту другую конфигурацию в mapred-site.xml, и теперь она работает (я получаю файл _SUCCESS и ожидаемый вывод), но я думаю, что это не оптимальная конфигурация!

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