YARN產生背景
運維成本
如果采用“一個框架一個集群”的模式逻谦,則可能需要多個管理員管理這些集群浊仆,進而增加運維成本崎岂,而共享模
式通常需要少數管理員即可完成多個框架的統(tǒng)一管理袱讹。
數據共享
隨著數據量的暴增,跨集群間的數據移動不僅需花費更長的時間棚点,且硬件成本也會大大增加早处,而共享集群模式可讓多種框架共享數據和硬件資源,將大大減少數據移動帶來的成本瘫析。
計算資源共享
離線批處理任務主要集中在凌晨執(zhí)行砌梆,資源使用有明顯的波峰波谷
交互式數據分析,資源使用主要集中在工作日的上班時段
實時流計算贬循、圖計算咸包、數據模型訓練等各種類型的計算任務需要不同的CPU、內存等計算資源
YARN主要功能
1杖虾、集群資源管理系統(tǒng)
2诉儒、負責集群的統(tǒng)一管理和調度
3、與客戶端交互亏掀,處理客戶
YARN基本結構
YARN核心組件
ResourceManager
- 整個集群只有一個Master
- 處理客戶端請求
- 啟動/監(jiān)控ApplicationMaster
- 監(jiān)控NodeManager
- 資源分配和調度
NodeManager
- 集群中存在多個忱反,每個節(jié)點一個,和Datanode部署在同一機器中
- 單個節(jié)點上的資源監(jiān)控和管理
- 定時向ResourceManager匯報本機的資源使用情況
- 處理來自ResourceManager的請求滤愕,為作業(yè)的執(zhí)行分配Container
- 處理來自ApplicationMaster的請求温算,啟動和停止Container
ApplicationMaster
- 每個應用程序只有一個,負責應用程序的管理间影,資源申請和任務調度注竿。
- 與ResourceManager協(xié)商為應用程序申請資源
- 與NodeManager通信啟動/停止任務
- 監(jiān)控任務運行狀態(tài)和失敗處理
Container
- 任務運行環(huán)境的抽象,只有在分配任務的時候才會抽象出一個Container魂贬。
- 描述一系列信息
- 任務運行資源(節(jié)點巩割、內存、 CPU)
- 任務啟動命令
- 任務運行環(huán)境
YARN容錯性
ResourceManager
基于Zookeeper實現(xiàn)高可用
NodeManager(簡稱NM)
NM故障將導致運行在該節(jié)點的任務失敗付燥,任務失敗后宣谈, RM將失敗任務通知對應的AM
AM決定如何處理失敗的任務
ApplicationMaster(簡稱AM)
AM失敗后,由RM負責重啟
AM會保存已經運行完成的Task键科,重啟后無需重新運行
未完待續(xù)闻丑。。勋颖。