ResourceManager
整個(gè)集群資源的主要協(xié)調(diào)者和管理者制肮,負(fù)責(zé)給用戶提交的所有應(yīng)用程序分配資源贱纠。
NodeManager
是每個(gè)節(jié)點(diǎn)的管理者复哆,主要負(fù)責(zé)該節(jié)點(diǎn)內(nèi)所有容器的生命周期管理猬错,監(jiān)視資源和跟蹤節(jié)點(diǎn)健康。
1.啟動(dòng)時(shí)向RM注冊(cè)并定時(shí)發(fā)送心跳信息犀变,等到RM的指令
2.維護(hù)Container的生命周期,監(jiān)控Container的資源使用情況
3.管理任務(wù)運(yùn)行時(shí)的相關(guān)依賴秋柄,根據(jù)ApplicationMaster的需要获枝,在啟動(dòng)Container之前將需要的程序和依賴拷貝到本地
ApplicationMaster
在用戶提交一個(gè)應(yīng)用程序時(shí),yarn會(huì)啟動(dòng)一個(gè)輕量級(jí)的進(jìn)程ApplicationMaster負(fù)責(zé)協(xié)調(diào)來(lái)自RM的資源骇笔,通過(guò)NM監(jiān)視容器內(nèi)資源的使用情況映琳。
1.根據(jù)應(yīng)用的運(yùn)行狀態(tài)決定動(dòng)態(tài)計(jì)算資源需求
2.向RM申請(qǐng)資源,監(jiān)控申請(qǐng)的資源的使用情況
3.跟蹤任務(wù)狀態(tài)和進(jìn)度蜘拉,報(bào)告資源的使用情況和應(yīng)用的進(jìn)度信息
Container
yarn中的資源抽象萨西,封裝了某個(gè)節(jié)點(diǎn)上的多維度的資源。當(dāng)AM向RM申請(qǐng)資源旭旭,RM為AM返回的資源用Container表示谎脯。yarn會(huì)為每個(gè)任務(wù)分配一個(gè)Container,該任務(wù)只能使用該Container中的資源持寄,AM可在Container內(nèi)運(yùn)行任何類型的任務(wù)源梭。
yarn工作原理
1.client提交作業(yè)到y(tǒng)arn
2.RM選擇一個(gè)NM,啟動(dòng)Container運(yùn)行ApplicationMaster實(shí)例
3.AM根據(jù)需要向RM請(qǐng)求更多的Container資源
4.AM通過(guò)獲取到的Container執(zhí)行計(jì)算