У меня возникают проблемы с тем, что 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 с их комбинациями. Я перезапустил сервер, и я еще не видел, чтобы изменения имели значение.
Я не знаю, что я могу сделать или что еще я могу изменить.
Можно ли каким-либо образом определить размер кучи внутри задания, чтобы попытаться отладить это?