Hadoop學(xué)習(xí)——YARN
1、Yarn的大致結(jié)構(gòu)
Resource Manager(RM,資源管理器):負(fù)責(zé)整個(gè)系統(tǒng)的資源管理和分配,并且由Scheduler和Application Manager組成;
Scheduler(調(diào)度器):根據(jù)容量、隊(duì)列等,將系統(tǒng)中資源分配給各個(gè)正在運(yùn)行的應(yīng)用程序;
Application Manager(ASM,應(yīng)用程序管理器):負(fù)責(zé)管理整個(gè)系統(tǒng)中所有應(yīng)用程序,包括應(yīng)用程序提交、與調(diào)度器協(xié)商資源以啟動(dòng)Application Master、監(jiān)控Application Master運(yùn)行狀態(tài)并在失敗時(shí)重新啟動(dòng)它等;
Application Master(AM)用戶(hù)提交的每個(gè)應(yīng)用程序均包含一個(gè)AM,主要功能包括:與RM協(xié)商以獲取資源(用Container表示)、與NM通信啟動(dòng)或停止任務(wù)、監(jiān)控所有任務(wù)運(yùn)行狀態(tài),并在任務(wù)運(yùn)行失敗時(shí)重新為任務(wù)申請(qǐng)資源以重啟任務(wù);
Node Manager(NM,節(jié)點(diǎn)管理器):是每個(gè)節(jié)點(diǎn)的資源和任務(wù)管理器。一方面,定時(shí)地向RM匯報(bào)本節(jié)點(diǎn)上的資源使用情況和各個(gè)container的運(yùn)行狀態(tài);另一方面,接受并處理來(lái)自AM的Container通信;
Container:是Yarn上的資源抽象,封裝了某個(gè)節(jié)點(diǎn)上的內(nèi)存、CPU資源,當(dāng)AM向RM申請(qǐng)資源時(shí),RM為AM返回的資源便是使用Container表示。一個(gè)任務(wù)對(duì)應(yīng)一個(gè)Container。
2、RM(ResourceManager)和NM(NodeManager)的交互
RM負(fù)責(zé)找到一個(gè)能夠在容器中啟動(dòng)application master的NM-節(jié)點(diǎn)管理器;
NM會(huì)定時(shí)的向RM匯報(bào)本節(jié)點(diǎn)上的資源使用情況和各個(gè)container的運(yùn)行狀態(tài)。
3、Yarn是如何分配任務(wù)的?
首先,客戶(hù)端聯(lián)系資源管理器,要求它運(yùn)行一個(gè)Application Master進(jìn)程;然后,資源管理器找到一個(gè)能夠在容器中啟動(dòng)Application Master的節(jié)點(diǎn)管理器。之后可能只是做一個(gè)簡(jiǎn)單的運(yùn)算,也有可能需要向資源管理器請(qǐng)求更多的容器,用以完成一個(gè)分布式計(jì)算。
4、Yarn中的調(diào)度器(具體內(nèi)容建議翻閱《Hadoop權(quán)威指南》)
三種調(diào)度器:FIFO Scheduler、Capacity Scheduler、Fair Scheduler
1)FIFO調(diào)度器:將應(yīng)用放置在一個(gè)隊(duì)列中,然后按照提交的順序(先進(jìn)先出)運(yùn)行應(yīng)用;
2)容量調(diào)度器:允許多個(gè)組織共享一個(gè)集群資源,一個(gè)組織被配置一個(gè)專(zhuān)門(mén)的隊(duì)列,在每個(gè)隊(duì)列中,使用FIFO調(diào)度策略對(duì)應(yīng)用進(jìn)行調(diào)度;
3)公平調(diào)度器:在同一個(gè)隊(duì)列中的應(yīng)用會(huì)得到相同的資源運(yùn)行。
5、Yarn的優(yōu)勢(shì)
可擴(kuò)展性(Scalability):根據(jù)《Hadoop權(quán)威指南》所說(shuō),利用其資源管理器和application master分離的架構(gòu)優(yōu)點(diǎn),可以擴(kuò)展到面向近萬(wàn)個(gè)節(jié)點(diǎn)和近十萬(wàn)個(gè)任務(wù);
可用性(Avaliability):相比較之前JobTracker的高可用,Yarn將其分而治之:先為資源管理器提供高可用性,再為Yarn應(yīng)用(針對(duì)每個(gè)應(yīng)用)提供高可用性;
利用率(Utilization):一個(gè)節(jié)點(diǎn)管理器管理一個(gè)資源池,對(duì)資源是精細(xì)化管理的;
多租戶(hù)(Multitenancy):MapReduce只是Yarn應(yīng)用中的一個(gè)。
給張Yarn應(yīng)用的運(yùn)行機(jī)制圖(摘錄自《Hadoop權(quán)威指南》)
---------------------
作者:恰到好處的喜歡
來(lái)源:CSDN
原文:https://blog.csdn.net/m0_37461645/article/details/84929891