YARN資源管理

把CDH搭建起來了,跑其中的例子程序word-count。在控制檯界面一直顯示map 0%  reduce 0% , 經過web頁面查看job的狀態一直是run,可是map沒有執行。感受是是資源的分配有問題。接着查看了任務的日誌。java

2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Recalculating schedule, headroom=0
2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Reduce slow start threshold not met. completedMapsForReduceSlowstart 2
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Ramping down all scheduled reduces:0
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Going to preempt 0

 

日誌中沒有任何的錯誤,可是一直打印該信息,應該是RM資源分配不夠。node

YARN中,資源包括內存和CPU,資源的管理是由ResourceManager和NodeManager共同完成,ResourceManager負責全部節點資源的管理和調度。NodeManager負責進程所在結點資源的分配和隔離。ResourceManager將某個NodeManager上資源分配給任務。下面詳細介紹其中的一些重要參數。web

yarn.nodemanager.resource.memory-mb

每一個節點可用的內存,單位是mb,默認是8G,用於供NodeManager分配的。我出現的問題是資源分配過小,只有1G。apache

yarn.scheduler.minimum-allocation-mbapp

單個任務可申請的最小內存,默認是1024mb,稍微大一點,避免小的資源浪費狀況,我本機資源少,因此給他分配了512mb, 失敗的緣由也就是這個分配過大。jvm

yarn.scheduler.maximum-allocation-mboop

單個任務可申請的最大內存,默認是8192mb. 若是是spark任務的話,這裏調大吧spa

mapreduce.map.memory.mb日誌

每一個map任務的物理內存限制,應該大於或等於yarn.scheduler.minimum-allocation-mb進程

mapreduce.reduce.memory.mb

每一個reduce任務的物理內存限制

mapreduce.map.java.opts

每一個map進程的jvm堆的大小

mapreduce.reduce.java.opts

每一個reduce進程的jvm堆的大小

 

每一個節點能夠運行map數和redue輸,由yarn.nodemanager.resource.memory-mb除於mapreduce.map.memory.mb和mapreduce.reduce.memory.mb獲得

 

http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-memory-cpu-scheduling/   還有一些參數參考這裏

相關文章
相關標籤/搜索