描述:YARN是Hadoop2.0加入一個資源調度框架,它一樣是主從節點架構:ResouceManager(資源管理)和NodeManager。架構
優勢:框架
一、資源調度和任務監控分離,解決JobTracker的瓶頸(壓力、單點故障)oop
二、通用的資源調度平臺,兼容更多運算框架(storm/spark/mapreduce)spa
工做機制:orm
(圖摘自官網,官網的圖看起來很是複雜,我我的看着是很費勁)接口
Yarn集羣的工做機制: 資源
瞭解Yarn工做機制前先要知道ResourceManager(如下簡稱RM)是一個資源任務調度器,負責任務資源的分配工做。
spark
一、任務執行前:
ast
1.一、向Yarn集羣中提交job做業首先交給RM集羣
1.二、RM返回job_id和job相關的資源路徑
1.三、得到資源路徑後往HDFS上傳job
1.四、通知RM,job上傳完畢
1.五、RM收到job提交完畢後會將job任務初始化
1.六、將job任務加入到任務列表(task list)
1.七、NodeManager(如下簡稱NN)會週期性向RM保持心跳通訊,而後檢查是否有須要本身領取的任務
1.八、NN一旦檢查到須要本身領取的任務時,就領取任務
1.九、領取到任務以後會根據job資源信息分配必定大小的資源容器
1.十、下載job資源到容器
二、執行任務:
Yarn提供了AppMaster接口,AppMaster主要對任務進行監控和調度,RM只管理AppMaster,一旦AppMaster掛了,就會在其餘NN節點上從新啓動,這樣一來RM的壓力就下降了(對比Hadoop1.0的JobTracker),運算框架只要實現該接口便可在Yarn集羣上面運行,這也是Yarn集羣的第二個好處,兼容更多的運算框架Spark/Storm/MapReduce等都實現了該接口,MapReduce實現的接口爲MRAppMaster
2.一、啓動MRAppMaster,(RM會根據狀況在某個NN節點啓動)
2.二、MRAppMaster向RM註冊
2.三、MRAppMaster根據RM提供的信息啓動各個NN節點的Map Task
2.四、啓動各個NN節點的Reduce Task
2.五、當任務執行完畢後向RM發起註銷操做,銷燬本身
以上就是整個Yarn集羣的工做機制