2014-10-01 4 views
0

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

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

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 

Когда это не сработало, я добавил это в моей пряжи окр .sh и перезапустить

YARN_HEAPSIZE=4000 

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

export HADOOP_HEAPSIZE=4000 
export HADOOP_NAMENODE_INIT_HEAPSIZE="3000" 

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

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

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

ответ

0

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

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

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> 

я не имею свертка фазы, поэтому я не придется беспокоиться об этих параметрах.

Теперь работа завершена.

0

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

export HADOOP_OPTS="-Xmx12072m" 

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

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

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

Удачи вам!

+0

Я тоже попробовал ваше предложение, но это тоже не сработало. Аппарат имеет 64 ГБ памяти, поэтому я просто пытался исключить нехватку памяти в качестве проблемы. С размером изображения, которое я пытался обработать, он должен был иметь только ~ 800 МБ памяти. –

+0

Я отправил то, что я сделал в ответ. –