Распределение кучи Hadoop

У меня возникают проблемы с тем, что Hadoop 2.5.1 не увеличивает объем кучи, который я запрашиваю. Похоже, что Hadoop не соблюдает свойство mapred.child.java.opts в файле mapred-site.xml.

В своей работе я делаю следующее:

R = new int[height * width];
G = new int[height * width];
B = new int[height * width];

В зависимости от размера изображения я передаю сбои работы, говоря

Вызвано: java.lang.OutOfMemoryError: пространство кучи Java

Что понятно. Мне нужно увеличить пространство кучи, но по какой-то причине Hadoop не хочет учитывать изменения в моем файле mapred-site.xml.

Я добавил это в свой mapred-site.xml и перезапустил

 <property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx12072m</value>
 </property>

Когда это не сработало, я добавил это в свой mapred-env.sh и перезапустил.

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=4000

Когда это не сработало, я добавил это в свой yarn-env.sh и перезапустил

JAVA_HEAP_MAX=-Xmx4000m

Когда это не сработало, я добавил это в свой yarn-env.sh и перезапустил

YARN_HEAPSIZE=4000

Когда это не сработало, я добавил это в свой файл hadoop-env.sh и перезапустил

export HADOOP_HEAPSIZE=4000
export HADOOP_NAMENODE_INIT_HEAPSIZE="3000"

Я перезапустил с помощью start/stop-dfs.sh start/stop-all.sh start/stop-yarn.sh с их комбинациями. Я перезапустил сервер, и я еще не видел, чтобы изменения имели значение.

Я не знаю, что я могу сделать или что еще я могу изменить.

Можно ли каким-либо образом определить размер кучи внутри задания, чтобы попытаться отладить это?


person Kevin Vasko    schedule 01.10.2014    source источник


Ответы (2)


Вы пробовали это?:

export HADOOP_OPTS="-Xmx12072m" 

Я вижу, вы уже пытались изменить mapred-site.xml (это был мой другой вариант).

Как насчет того, чтобы сначала попробовать с более низким значением и посмотреть, сработает ли оно??.

Вероятно, у вас недостаточно оперативной памяти для Java, и вы пытаетесь дать больше, чем она может достичь. Если это так, вам нужно будет перейти на машину с большим объемом памяти и попробовать там.

Удачи!

person Cesar Villasana    schedule 01.10.2014
comment
Я тоже попробовал ваше предложение, но это тоже не сработало. У машины 64 ГБ памяти, поэтому я просто пытался исключить нехватку памяти как проблему. С размером изображения, которое я пытался обработать, ему нужно было всего ~ 800 МБ памяти. - person Kevin Vasko; 03.10.2014
comment
Я опубликовал то, что я сделал, в качестве ответа. - person Kevin Vasko; 03.10.2014

Я не знаю, в чем была настоящая исходная проблема, но, видимо, это была проблема с конфигурацией, которая была у меня на моей стороне. Либо неправильная конфигурация, либо конфликтующая конфигурация, вызвавшая проблему. В итоге я поцарапал установку хаупа и начал с нуля.

Я следовал инструкциям для псевдораспределенной операции в этом руководстве:

http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/SingleCluster.html

В дополнение к параметрам конфигурации, приведенным в этих инструкциях, я добавил следующее. Вы можете найти информацию здесь http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/ClusterSetup.html

<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx4096m</value>
</property>
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>4096</value>
 </property>

У меня нет фазы уменьшения, поэтому мне не нужно беспокоиться об этих параметрах.

Кажется, работа завершена.

person Kevin Vasko    schedule 02.10.2014