簡體   English   中英

如何為hadoop mapreduce配置java內存堆空間?

[英]How to configure java memory heap space for hadoop mapreduce?

我嘗試對大約 20 GB 的數據運行 mapreduce 作業,但在 reduce shuffle 階段出現錯誤。 它說是因為內存堆空間。 然后,我閱讀了許多來源,我必須使用默認值 0,7 減少 mapred-site.xml 上的 mapreduce.reduce.shuffle.input.buffer.percent 屬性。 所以,我將其減少到 0,2。

我想問一下,該屬性是否會影響我的 mapreduce 工作的時間性能。 那么,如何正確配置以使我的 mapreduce 作業永遠不會出錯?

mapreduce.reduce.shuffle.input.buffer.percent 0.70 在隨機播放期間從最大堆大小分配到存儲映射輸出的內存百分比。 由此看來,如果將其減小到任意值,則可能會降低 shuffle 階段的性能。 默認值背后會有一定的推理和測試您可以在這里查看其他相關屬性http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default .xml

您的映射器輸出的大約數據是多少,如果它很大,那么您可能想要增加映射器的數量同樣,如果減速器的數量很少,則在減速階段可能會發生堆空間錯誤。

您可能想檢查您的作業計數器並增加映射器/減速器的數量您也可以嘗試通過設置屬性mapreduce.reduce.memory.mbmapreduce.map.memory.mb 來增加映射器/減速器內存

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM