MapReduce程式執行後馬上出現OutofMemory Exception
現象:
Job一執行後,連Map都沒開始就出現OOM的訊息。
原因:
預設client的heap size為256mb,在大多數時候都夠用,但有時job在初始化時,會用到大量的記憶體,如這邊的範例,要讀的檔案太大,所以在DFSClient的listPaths()裡,存太多資料導致heap用完。
解決方法:
透過環境變數,改變Client端的heap大小。
export HADOOP_CLIENT_OPTS="-Xmx4096m"
參考資料:
https://chawlasumit.wordpress.com/2016/03/14/hadoop-gc-overhead-limit-exceeded-error/