標籤:style http java color os 2014
把CDH搭建起來了,跑其中的例子程式word-count。在控制台介面一直顯示map 0% reduce 0% , 通過web頁面查看job的狀態一直是run,但是map沒有執行。感覺是是資源的分配有問題。接著查看了任務的日誌。
2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Recalculating schedule, headroom=02014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Reduce slow start threshold not met. completedMapsForReduceSlowstart 22014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Ramping down all scheduled reduces:02014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Going to preempt 0
日誌中沒有任何的錯誤,但是一直列印該資訊,應該是RM資源分派不夠。
YARN中,資源套件括記憶體和CPU,資源的管理是由ResourceManager和NodeManager共同完成,ResourceManager負責所有節點資源的管理和調度。NodeManager負責進程所在結點資源的分配和隔離。ResourceManager將某個NodeManager上資源分派給任務。下面詳細介紹其中的一些重要參數。
yarn.nodemanager.resource.memory-mb
每個節點可用的記憶體,單位是mb,預設是8G,用於供NodeManager分配的。我出現的問題是資源分派太小,只有1G。
yarn.scheduler.minimum-allocation-mb
單個任務可申請的最小記憶體,預設是1024mb,稍微大一點,避免小的資源浪費情況,我本機資源少,所以給他分配了512mb, 失敗的原因也就是這個分配過大。
yarn.scheduler.maximum-allocation-mb
單個任務可申請的最大記憶體,預設是8192mb. 如果是spark任務的話,這裡調大吧
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/ 還有一些參數參考這裡