YARN產生背景
運維成本
如果采用“一個框架一個集群”的模式,則可能需要多個管理員管理這些集群,進而增加運維成本,而共享模
式通常需要少數管理員即可完成多個框架的統一管理。
數據共享
隨著數據量的暴增,跨集群間的數據移動不僅需花費更長的時間,且硬件成本也會大大增加,而共享集群模式可讓多種框架共享數據和硬件資源,將大大減少數據移動帶來的成本。
計算資源共享
離線批處理任務主要集中在凌晨執行,資源使用有明顯的波峰波谷
交互式數據分析,資源使用主要集中在工作日的上班時段
實時流計算、圖計算、數據模型訓練等各種類型的計算任務需要不同的CPU、內存等計算資源
YARN主要功能
1、集群資源管理系統
2、負責集群的統一管理和調度
3、與客戶端交互,處理客戶
YARN基本結構
YARN結構.jpg
YARN核心組件
ResourceManager
- 整個集群只有一個Master
- 處理客戶端請求
- 啟動/監控ApplicationMaster
- 監控NodeManager
- 資源分配和調度
NodeManager
- 集群中存在多個,每個節點一個,和Datanode部署在同一機器中
- 單個節點上的資源監控和管理
- 定時向ResourceManager匯報本機的資源使用情況
- 處理來自ResourceManager的請求,為作業的執行分配Container
- 處理來自ApplicationMaster的請求,啟動和停止Container
ApplicationMaster
- 每個應用程序只有一個,負責應用程序的管理,資源申請和任務調度。
- 與ResourceManager協商為應用程序申請資源
- 與NodeManager通信啟動/停止任務
- 監控任務運行狀態和失敗處理
Container
- 任務運行環境的抽象,只有在分配任務的時候才會抽象出一個Container。
- 描述一系列信息
- 任務運行資源(節點、內存、 CPU)
- 任務啟動命令
- 任務運行環境
YARN容錯性
ResourceManager
基于Zookeeper實現高可用
NodeManager(簡稱NM)
NM故障將導致運行在該節點的任務失敗,任務失敗后, RM將失敗任務通知對應的AM
AM決定如何處理失敗的任務
ApplicationMaster(簡稱AM)
AM失敗后,由RM負責重啟
AM會保存已經運行完成的Task,重啟后無需重新運行
未完待續。。。