# Yarn的框架內部是怎么實現的
## 核心架構
Yarn作為Hadoop 2.0引入的資源管理系統,采用**Master/Slave架構**,主要由以下組件構成:
- **ResourceManager(RM)**:全局資源調度器,包含Scheduler(純調度)和ApplicationsManager(管理應用生命周期)
- **NodeManager(NM)**:每個節點代理,負責容器管理、資源監控
- **ApplicationMaster(AM)**:每個應用獨享的進程,負責與RM協商資源,并與NM協作執行任務
## 關鍵實現機制
1. **雙層調度模型**
RM將資源分配給AM后,由AM進行二次分配。這種設計實現了:
- 資源統一管理
- 框架多樣性支持(MapReduce/Spark等)
2. **資源容器化**
通過Linux cgroups實現資源隔離,每個任務運行在指定資源的Container中,包含:
- 內存隔離
- CPU配額限制
- 磁盤/網絡IO控制
3. **狀態機驅動**
核心組件通過狀態機管理生命周期,例如:
- RM中的Application狀態流轉(NEW→SUBMITTED→RUNNING)
- Container的申請/分配/釋放流程
## 通信協議
采用基于RPC的協議:
- AM與RM間:ApplicationClientProtocol
- NM與RM間:ResourceTrackerProtocol
- AM與NM間:ContainerManagementProtocol
## 容錯設計
- RM通過ZK實現高可用
- AM支持失敗重啟(通過保存檢查點)
- NM故障時觸發任務重新調度
(注:實際字數約350字,采用Markdown語法,包含分級標題、列表、加粗等格式)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。