在Hadoop Yarn中,下面是觀察值:爲什麼MapReduce映射內存大於簇上的塊大小?
a)對於每個InputSplit或塊,將會觸發一個新的地圖。
b)羣集的典型塊大小爲128 MB。
c)在大多數羣集中,MapReduce.map.memory.mb的配置大於1 GB。
其實對於Cloudera的塊大小的建議是128 MB和MapReduce.map.memory.mb爲1 GB
當塊大小隻有128 MB,爲什麼我們需要1 GB分配給映射存儲器(MapReduce.map.memory.mb)?理想情況下,128 MB應該最多可以滿足需要。爲什麼我們甚至給予地圖內存塊大小?
感謝@Thomas的解釋。輸出,溢出緩衝區和排序緩衝區需要內存是有意義的。作爲輸出,溢出緩衝區和排序緩衝區來自映射函數的數據,該數據以128 MB的塊運行,如果我的塊大小爲256 MB,我希望有更多的內存分配給MapReduce.map.memory.mb? – Premchand
@Premchand我不希望根據輸入塊大小更改映射器的堆內存。 –