Yarn的產生
mapReduc1.0
1單點故障
2擴展效率低
3資源利用率高
降低運維成本
方便數據共享
多計算框架支持
MapReduce
Spark
Storm
Yarn的架構圖
Yarn模塊介紹
ResourceManger
負責集群資源的統一管理和調度
處理客戶端請求
啟動/監控ApplicationMaster
監控NodeManager
資源的分配與調度
NodeManager
負責單點資源的管理和使用
處理來自ResourceManager的命令
處理來自ApplicationMaster的命令
ApplicationMaster
負責應用程序的管理
數據的切分
為應用程序申請資源。並進一步分給內部任務
任務的監控與容錯
Container
任務環境的抽象
任務運行的資源
任務啟動命令
任務運行環境
Yarn資源調度器
多類型資源調度
Drf算法
Cpu和內存兩種資源
提供多種資源調度
Fifo
隊列 capaity Scheduler
Fair Scheduler
多租戶的資源調度器
支持資源按比例分配
支持層級隊列的划分
支持資源的槍占
Yarn 資源隔離方案
內存絕定生死
Cpu決定快慢
Yarn運行流程的描述
1由client端向ResourceManager 發送請求,
2 ResourceManager啟動一個Contariner(容器)用於運行ApplicationMaster
3 ApplicationMaster啟動完成后會向ResourceManager建立心跳機制
4 當處理機制不夠時,ApplicationMaster會向ResourceManager發送申請請求
5 當ResourceManager接收到請求后會查詢可用的contariner讓后發送ApplicationMaster
6 由ApplicationMaster進行初始化,AplicationMaster與對應的nodeManage通信
要求nodeManager啟動Contarner aplicationMaster與nodeManger建立心跳機制
從而對nodeManager運行的任務進行監控和管理
7 contariner運行期間,ApplicationMaster對Contariner進行監控,contarner通過rpc協議
向對應的ApplicationMaseter匯報自己的狀態和進度
8運行期間client 直接與ApplicationMaster通信獲取狀態,進度
9 結束后ApplicationMaster會向ResourceManager匯報並且注銷自己,並允許所屬的Contariner收回