我遇到的問題是Hadoop 2.5.1不增加我請求的堆空間增加量。 Hadoop似乎沒有考慮到mapred-site.xml文件中的mapred.child.java.opts屬性。Hadoop堆分配
在我的工作,我做了以下內容:
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
如果沒有工作,我已將此添加到我的紗線ENV .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及其組合。我已經重新啓動服務器,但我還沒有看到有任何改變。
我不知道我能做什麼或者我可以改變什麼。
有什麼辦法可以從作業內部確定堆大小,所以我可以嘗試調試這個?
我也嘗試了你的建議,但那也沒有奏效。該機器有64GB的內存,所以我只是想排除內存不足的問題。隨着我想要處理的圖像大小應該只需要〜800MB的內存。 – 2014-10-02 20:50:27
我發佈了我做的答案。 – 2014-10-02 20:58:17