yarn架構(gòu)圖
yarn的功能模塊
- ResourceManager
- NodeManager
- ApplicationMaster
- Container
各個功能模塊的作用
ResourceManager
- 處理客戶端的請求(啟動/殺死)
- 啟動/監(jiān)控ApplicationMaster(一個作業(yè)對應(yīng)一個AM)
- 監(jiān)控NM
- 系統(tǒng)的資源分配和調(diào)度
NodeManager
- 定期向RM匯報本節(jié)點的資源使用請求和各個Container的運行狀態(tài)
- 接收并處理RM的container啟停的各種命令
- 單個節(jié)點的資源管理和任務(wù)管理
ApplicationMaster
- 數(shù)據(jù)切分
- 為應(yīng)用程序向RM申請資源(container)折晦,并分配給內(nèi)部任務(wù)
- 與NM通信以啟停task妹沙, task是運行在container中的
- task的監(jiān)控和容錯
Container
- 對任務(wù)運行情況的描述:cpu蝗岖、memory捧请、環(huán)境變量
YARN執(zhí)行流程
- 用戶向YARN提交作業(yè)
- RM為該作業(yè)分配第一個container(啟動AM)
- RM會與對應(yīng)的NM通信吼句,要求NM在這個container上啟動應(yīng)用程序的AM
- AM首先向RM注冊,然后AM將為各個任務(wù)申請資源陈莽,并監(jiān)控運行情況
- AM采用輪訓(xùn)的方式通過RPC協(xié)議向RM申請和領(lǐng)取資源
- AM申請到資源以后汗捡,便和相應(yīng)的NM通信,要求NM啟動任務(wù)
- NM啟動我們作業(yè)對應(yīng)的task