1、簡(jiǎn)單介紹yarn?
?yarn是一個(gè)資源管理、任務(wù)調(diào)度的框架。主要包含三個(gè)模塊:resourceManger、nodeManger、ApplicationMater。
2、簡(jiǎn)單介紹三個(gè)組件的作用?
RM:負(fù)責(zé)所有資源的監(jiān)控、分配和管理
AM:負(fù)責(zé)每一個(gè)具體應(yīng)用程序的調(diào)度和協(xié)調(diào)
? ? --applicationmaster。用戶(hù)提交的每個(gè)應(yīng)用程序均包含一個(gè)AM,它可以運(yùn)行在RM以外的機(jī)器上。
NM:負(fù)責(zé)每一個(gè)節(jié)點(diǎn)的維護(hù)。
? ? --nodemanger負(fù)責(zé)該節(jié)點(diǎn)的程序的正常運(yùn)行,定時(shí)向RM匯報(bào)本節(jié)點(diǎn)資源(cpu、內(nèi)存)的使用情況和Container的運(yùn)行狀況。當(dāng)Rm宕機(jī)后連接RM的備用節(jié)點(diǎn)。負(fù)責(zé)接收并處理來(lái)自AM的Container的啟動(dòng)、停止等各種請(qǐng)求。
3、yarn有哪些調(diào)度器?
FIFO(隊(duì)列)調(diào)度:把應(yīng)用按提交的順序排成一個(gè)隊(duì)列,按照先進(jìn)先出進(jìn)行資源分配。
容量調(diào)度:該調(diào)度允許多個(gè)組織共享整個(gè)集群,再為每個(gè)組織分配專(zhuān)門(mén)的隊(duì)列。再為隊(duì)列分配相應(yīng)的計(jì)算資源。
公平調(diào)度:在公平調(diào)度中,我們不需要提前占用集群資源,fair調(diào)度器會(huì)在運(yùn)行過(guò)程中根據(jù)job的執(zhí)行動(dòng)態(tài)的調(diào)整系統(tǒng)的資源分配。
4、什么是container?
? ? 是一個(gè)抽象概念,稱(chēng)之為容器,包含任務(wù)運(yùn)行時(shí)所需的資源(包括內(nèi)存、硬盤(pán)、cpu等)和環(huán)境(包含啟動(dòng)命令、環(huán)境變量等)
5、yarn的執(zhí)行流程?
? ? ①客戶(hù)端向集群提交一個(gè)任務(wù),該任務(wù)首先到RM中的AM
? ? ②AM收到任務(wù)后,會(huì)在集群中找一個(gè)NodeManger,在該NodeManger上啟動(dòng)一個(gè)APPMaster進(jìn)程。該進(jìn)程用于執(zhí)行任務(wù)劃分和任務(wù)監(jiān)控。
? ? ③AppMaster啟動(dòng)起來(lái)之后,會(huì)向RM中的AM注冊(cè)信息,APPMaster向RM下的ResourceSchedule申請(qǐng)計(jì)算任務(wù)所需的資源。
? ? ④AppMaster申請(qǐng)到資源之后,會(huì)與所有NodeManger通信要求他們啟動(dòng)所有計(jì)算任務(wù)(map和reudce)
? ? ⑤各個(gè)NM啟動(dòng)對(duì)應(yīng)的容器Container用來(lái)執(zhí)行Map和Reduce任務(wù)。
? ? ⑥各個(gè)任務(wù)會(huì)向APPMaster匯報(bào)自己的執(zhí)行進(jìn)度和執(zhí)行狀況,以便讓AppMaster隨時(shí)掌握各個(gè)任務(wù)的運(yùn)行狀態(tài),在某個(gè)任務(wù)出了問(wèn)題之后重啟執(zhí)行該任務(wù)。
? ? ⑦在執(zhí)行完之后,APPMaster會(huì)向AM匯報(bào),以便讓ApplicationManger注銷(xiāo)并關(guān)閉自己,使得資源得以回收。
