我試着在大約20GB的數據上運行mapreduce作業,並且在減少混洗階段出現錯誤。它說因爲內存堆空間。然後,我讀了很多源代碼,我必須減少mapred-site.xml上mapreduce.reduce.shuffle.input.buffer.percent屬性的默認值0,7。所以,我把它降低到0.2。如何爲hadoop mapreduce配置java內存堆空間?
我想問一下,該屬性是否會影響我的mapreduce作業的時間性能。那麼,我該如何正確配置才能使我的mapreduce作業永遠不會出錯?
非常感謝您的回答,我想再問一次,所以當我們在內存配置上出錯時,hadoop mapreduce可以讓任務失敗。那麼,我們可以說,這個問題取決於記錄的數量,那麼,hadoop如何處理這個問題或將失敗風險降到最低? Thanks2 –
理想的洗牌不應該有這個問題。這是什麼大數據,事情不會適合內存有一個錯誤https://issues.apache.org/jira/browse/MAPREDUCE-1182。你在舊版本?如果減少任務的內存不足,那麼它是一個程序員的錯誤(減速器數量太低或自定義分區不好) – bl3e
通過我使用hadoop 2.6.0的方式,我設置reduce task的數量與slave的數量相同節點,你覺得怎麼樣? –