Hadoop on Mac with IntelliJ IDEA - 5 解決java heap space問題


本文講述在CentOS 6.5中提交作業到hadoop 1.2.1於reduce階段遇到Error: java heap space錯誤導致作業重新計算的解決過程。解決辦法適用Linux、Mac OS X 和Windows操作系統。

環境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1

Hadoop放在虛擬機中,宿主機通過SSH連接,IDE和數據文件在宿主機。IDEA自身運行於JDK 1.8,IDEA工程及Hadoop使用JDK 1.6。

在處理Hadoop In Action第4章所引用的專利數據時,遇到了jvm堆空間不足問題,如下圖所示。

看來是java虛擬機堆內存過小導致的。按如下方式設置即可解決[1]

方式一,臨時處理,每次提交任務前,執行語句  export HADOOP_OPTS=[大小],如將JVM堆大小設置成4G大小,export HADOOP_OPTS= "-Xmx4096m"  再執行hadoop命令。

方式二,永久處理,配置hadoop目錄下conf目錄中的mapred-site.xml文件,加上如下內容,並重啟hadoop以生效。

1 <property>
2     <name>mapred.child.java.opts</name>
3     <value>-Xmx4096m</value>
4 </property>

說明,堆的設置一般從較小值嘗試,逐步增大,當不再出現java heap space提示時即可。32位系統,一般限制在1.5G~2G;64位操作系統對內存無限制。

有關JVM調優信息,可參考JVM調優總結 -Xms -Xmx -Xmn -Xss

參考

[1]http://stackoverflow.com/questions/15609909/error-java-heap-space 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM