MapReduce1.x存在的問題:單點故障&節點壓力大不易擴展。node
資源利用率&成本架構
催生了YARN的誕生 框架
不一樣計算框架能夠共享同一個HDFS集羣上的數據,享受總體的資源調度。oop
XXX on YARN的好處:與其餘計算框架共享集羣資源,按資源須要分配,進而提升集羣資源的利用率。spa
XXX:Spark/MapReduce/Storm/Flink3d
1 Yet Another Resource Negotiatorcode
2 通用資源管理系統orm
3 爲上層應用提供統一的資源管理和調度xml
1 ResourceMananger:RMblog
整個集羣提供服務的RM只有一個(生產中有兩個,一個主,一個備),負責集羣資源的統一管理和調度。
|-- 處理客戶端的請求:提交一個做業、殺死一個做業。
|--監控NM,一旦某個NM掛了,那麼該NM上運行的任務須要告訴AM如何進行處理。
2 NodeManager:NM
整個集羣中有多個,負責本身自己節點資源管理和使用。
|--定時向RM彙報本節點的資源使用狀況。
|--接收並處理來自RM的各類命令:啓動Container等。
|--處理來自AM的命令。
|--單個節點的資源管理。
3 ApplicationMaster:AM
每個應用程序對應一個:MR、Spark,負責應用程序的管理。
|--爲每一個應用程序向RM申請資源(core、memory),分配給內部task。
|--須要與NM通訊:啓動/中止task,task是運行在Container裏面,AM也是運行在Container裏面。
4 Container
|--封裝了CPU、Memory等資源的一個容器
|--是一個任務運行環境的抽象。
5 Client
|--提交做業。
|--查詢做業的運行進度。
|--殺死做業。
1 yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
2 mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3 啓動YARN相關的進程
sbin/start-yarn.sh
4 驗證
|-- jps
|--ResourceManager
|--NodeManager
|-- http://master01:8088/
5 中止YARN相關的進程
sbin/stop-yarn.sh
命令:
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3 //前者是Map的數量,後者是取樣的數量