我目前有一個運行僞分佈式Hadoop系統。該機器有8個內核(16個虛擬內核),32 GB內存。Yarn和MapReduce資源配置
我的輸入文件介於幾MB到68 MB之間(gzipped日誌文件,一旦它們達到> 60MB,就會上傳到我的服務器,因此無法修復最大大小)。我想在這些文件的大約500-600個上運行一些Hive作業。
由於輸入文件的大小不一致,到目前爲止我還沒有改變Hadoop中的塊大小。據我所知最好的情況下,如果blocksize =輸入文件的大小,但Hadoop填充該塊,直到它的完整,如果該文件小於塊大小?輸入文件的大小和數量如何影響性能,而不是說一個大的〜40 GB文件?
我的這個設置的最佳配置是怎樣的?
根據本指南(http://hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/)我想出了這個配置上:
32 GB內存,2 GB預留給操作系統給了我30720 MB可以分配給紗容器。
yarn.nodemanager.resource.memory-mb=30720
對於8個內核,我認爲最多10個容器應該是安全的。所以每個容器(30720/10)3072 MB的RAM。
yarn.scheduler.minimum-allocation-mb=3072
在地圖任務容器我一倍的最小容器大小,這將允許最多5個地圖任務
mapreduce.map.memory.mb=6144
如果我想最大的3 Reduce任務我分配:
mapreduce.map.memory.mb=10240
隨着JVM堆大小以裝配到容器:
mapreduce.map.java.opts=-Xmx5120m
mapreduce.reduce.java.opts=-Xmx9216m
您是否認爲這種配置會很好,或者您會改變什麼,爲什麼?
感謝您的建議!我不能查看那個博客,因爲它只有邀請。我明白了,因爲我有16個內核,我應該爲映射分配'3cores * 5map = 15cores'和'5cores * 3reduce = 15cores'並減少容器,但是爲什麼您選擇了12個容器內核?不應該是15個容器核心? – h2b
是的,它應該只有15。錯字。此外,我還更改了博客的讀取權限。現在你可以看到它。 –