yarn知識體系總結(jié)-創(chuàng)新互聯(lián)

2019/2/18 星期一

yarn知識體系總結(jié)

創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,先為隴西等服務(wù)建站,隴西等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為隴西企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Yarn 產(chǎn)生的原因
(1)MapreduceV1 中,jobtracker 存在瓶頸:
集群上運(yùn)行的所有mr 程序都有jobtracker 來調(diào)度
SPOF 單點(diǎn)故障
職責(zé)劃分不清晰
(2) 將jobtracker 的職責(zé)劃分成兩個(gè)部分:
? 資源調(diào)度與管理:由統(tǒng)一的資源調(diào)度平臺(集群)來實(shí)現(xiàn)(yarn)
? 任務(wù)監(jiān)控與管理:
A、每一個(gè)application 運(yùn)行時(shí)擁有一個(gè)自己的任務(wù)監(jiān)控管理進(jìn)程AppMaster
B、AppMaster 的生命周期:application 提交給yarn 集群之后,yarn 負(fù)責(zé)啟動(dòng)該application 的AppMaster,隨后任務(wù)的執(zhí)行監(jiān)控調(diào)度等工作都交由AppMaster,待這個(gè)application 運(yùn)行完畢后,AppMaster 向yarn 注銷自己。
C、AppMaster 的具體實(shí)現(xiàn)由application 所使用的分布式運(yùn)算框架自己負(fù)責(zé),比如Mapreduce 類型的application 有MrAppMaster 實(shí)現(xiàn)類。Spark DAG 應(yīng)用則有SparkOnYarn 的SparkContext 實(shí)現(xiàn)


yarn的架構(gòu)圖

yarn知識體系總結(jié)

yarn的2個(gè)主要的類節(jié)點(diǎn)(服務(wù)進(jìn)程)
1、resourcemanager 主節(jié)點(diǎn)master --- 只需要1個(gè) (也可以實(shí)現(xiàn)HA)
2、nodemanager 從節(jié)點(diǎn) -----根據(jù)集群規(guī)??梢杂卸鄠€(gè)
具體小結(jié)如下:
(1)ResourceManager ----> master node,可配多個(gè)RM 實(shí)現(xiàn)HA 機(jī)制,
ResourceManager由兩個(gè)核心組件構(gòu)成:
Scheduler 和ApplicationsManager;
Scheduler:負(fù)責(zé)資源調(diào)度,調(diào)度策略可插拔(內(nèi)置實(shí)現(xiàn)CapacityScheduler / FairScheduler )不提供對application 運(yùn)行的監(jiān)控;
ApplicationsManager:負(fù)責(zé)響應(yīng)任務(wù)提交請求,協(xié)商applicationMaster 運(yùn)行的container,重啟失敗的applicationMaster
(2)NodeManager ----> slave nodes,每臺機(jī)器上一個(gè)
職責(zé):加載containers,監(jiān)控各container 的資源使用情況,并向Resourcemanager/Scheduler 匯報(bào)
(3)ApplicationMaster ----> 特定運(yùn)算框架自己實(shí)現(xiàn),接口為統(tǒng)一的AppMaster
職責(zé):向Scheduler 請求適當(dāng)?shù)馁Y源,跟蹤任務(wù)的執(zhí)行,監(jiān)控任務(wù)執(zhí)行進(jìn)度、狀態(tài)等

yarn的基本概念-mr程序提交的流程
yarn:hadoop的資源管理調(diào)度平臺(集群)---為用戶程序提供運(yùn)算資源的管理和調(diào)度
用戶程序:如用戶開發(fā)的mr程序

mr程序提交的詳細(xì)流程

yarn知識體系總結(jié)

1、runjar啟動(dòng)起來之后,就會找resourcemanager,發(fā)出一個(gè)遠(yuǎn)程過程調(diào)用RPC //申請?zhí)峤灰粋€(gè)job(mr程序)
2、resourcemanager會返回一個(gè)jobid以及一個(gè)提交job相關(guān)文件的hdfs路徑給runjar程序 比如:hdfs://../stagingDIR
3、runjar就會上傳job相關(guān)的文件到hdfs路徑下 比如:hdfs://.../stagingDIR/jobid/worcount.jar
jbo.xml
job split的切片信息
4、通知RM,文件上傳成功
5、在RM內(nèi)部會對本次客戶端提交的任務(wù),構(gòu)造出一個(gè)任務(wù)出來,放在他的內(nèi)部的任務(wù)隊(duì)列中。別的客戶端提交上來的任務(wù)也會在這個(gè)隊(duì)列中,當(dāng)資源不夠的時(shí)候,會等待。
6、nodemanager和resourcemanager之間時(shí)刻都保持著一個(gè)心跳的通信,任務(wù)出來之后,nodemanager會去自動(dòng)去領(lǐng)取任務(wù),比如:nodemanager在領(lǐng)取任務(wù)的時(shí)候被其中一個(gè)節(jié)點(diǎn)領(lǐng)取到了任務(wù),nodemanager會到hdfs上拉取job的相關(guān)的文件。
7、nodemanager在自己的內(nèi)部隔離出一部分資源出來,形成一個(gè)容器(container)cpu+mem 這個(gè)任務(wù)要做的第一件事情是:他會在容器里面去啟動(dòng)一個(gè)程序,(那他怎么知道去啟動(dòng)這個(gè)程序的呢?resource manager會在這個(gè)job任務(wù)中描述的會嵌入一個(gè)啟動(dòng)程序的shell命令)nodemanager負(fù)責(zé)把這個(gè)shell命令在他的機(jī)器上執(zhí)行一下就ok了,執(zhí)行以下就會在容器中啟動(dòng)一個(gè)MapReduce jar包中的一個(gè)程序,這個(gè)程序就叫做(MRappmaster進(jìn)程)接下來所有的處理流程就由這個(gè)MRappmaster進(jìn)程來主導(dǎo)了。
MRAPPmaster會做什么事?他本身又是個(gè)什么東西呢?
MRappmaster:其實(shí)就是一個(gè)MapReduce的應(yīng)用程序的主管。這個(gè)主管進(jìn)程是MapReduce框架來實(shí)現(xiàn)的,這個(gè)就是用來管理這個(gè)MapReduce程序的執(zhí)行
在yarn中其實(shí)就只負(fù)責(zé)到把mrappmaster進(jìn)程啟動(dòng)起來。其他的MapReduce程序具體是怎么運(yùn)行的,yarn就不管了。yarn只負(fù)責(zé)給你相應(yīng)需要的資源就Ok了
8、mrappmaster啟動(dòng)起來之后,會向resourcemanager注冊并申請程序運(yùn)行的資源。mrappmaster會啟動(dòng)map task和reduce task進(jìn)程,所以需要資源包括監(jiān)控和管理任務(wù)所需要的資源。
9、resourcemanager就會把mrappmaster申請的響應(yīng)的資源分配給他,那么在任務(wù)隊(duì)列中就又會產(chǎn)生新的任務(wù),這些任務(wù)是交給nodemanager去處理的(其實(shí)就是分配資源的任務(wù))nodemanager領(lǐng)取到新的分配資源的任務(wù)的時(shí)候就會在自己的這臺機(jī)器上創(chuàng)建新的容器(一臺機(jī)器上可以創(chuàng)建多個(gè)容器)每臺nodemanager創(chuàng)建好的容器資源列表會返回給RM
10、RM就會返回資源列表信息給MRappmaster
11、mrappmaster就會去找到每臺nodemanager中領(lǐng)到任務(wù)并創(chuàng)建容器的機(jī)器,讓他們?nèi)?dòng)map task進(jìn)程。(要啟動(dòng)幾個(gè)map task進(jìn)程是看job任務(wù)中關(guān)于job split切片規(guī)則的,規(guī)則中是幾個(gè)就起幾個(gè)map task進(jìn)程)
12、當(dāng)map task處理完成任務(wù)后會返回信息給mrappmaster 告訴他我把處理好的 任務(wù)結(jié)果放在了哪里哪里....
13、mrappmaster會再次向RM申請新的資源,RM會為這次的申請?jiān)俅畏峙湟粋€(gè)任務(wù)到任務(wù)隊(duì)列中,那么其中的一個(gè)nodemanager會去領(lǐng)取任務(wù),并且分配容器,然后會返回給RM,告訴他我創(chuàng)建好了容器,然后RM會告訴給MRappamster告訴他,你需要的資源,我給你創(chuàng)建好了,并且告訴他在那臺nodemanager上。
14、mrappmaster會在響應(yīng)的nodemanager容器中啟動(dòng)一個(gè)reduce task 進(jìn)程,并且告訴他map 輸出的結(jié)果在哪里 哪里...
reduce task就會去拿,在執(zhí)行他的內(nèi)部的執(zhí)行過程
16、reduce task就會給mrappmaster返回處理結(jié)果,
17、整個(gè)MR程序處理完成,mrappmaster向RM注銷自己。

小結(jié):
YARN的工作機(jī)制--MR程序運(yùn)行流程
查看map task和reduce task的進(jìn)程用命令jps看到的是yarn child

總結(jié):
1.yarn只響應(yīng)job的提交及為job的運(yùn)行分配資源
yarn不參與job的具體運(yùn)行機(jī)制和流程
2.mapreduce程序中有一個(gè)MrAppmaster來負(fù)責(zé)程序的 具體運(yùn)行流程控制
3.由于yarn不提供用戶程序的具體運(yùn)行,所以yarn可以為各種類型的資源程序提供資源服務(wù)
(YARN就類似于一個(gè)操作系統(tǒng)平臺,可以運(yùn)行各種各樣運(yùn)算框架所開發(fā)的程序:mapreduce storm spark...)
4.因?yàn)閥arn的這種運(yùn)行機(jī)制,延長了hadoop的生命周期
5.因?yàn)閥arn可以整合各種各樣的運(yùn)算框架,企業(yè)就可以把各種分布式框架整合到hadoop集群
以便于企業(yè)管理和節(jié)約了企業(yè)的成本

application 生命周期
Yarn 支持短周期和長周期應(yīng)用
MR:短周期應(yīng)用,用戶的每一個(gè)job 為一個(gè)application
Spark:短周期應(yīng)用,但比上一種效率要高,它是將一個(gè)工作流(DAG)轉(zhuǎn)化為一個(gè)application,這樣在job 之間可以重用container 及中間結(jié)果數(shù)據(jù)可以不用落地
Storm:long-running 應(yīng)用,應(yīng)用為多用戶共享,降低了資源調(diào)度的前期消耗,從而可以為用戶提供低時(shí)延響應(yīng)

資源請求
資源請求由Container 對象描述,支持?jǐn)?shù)據(jù)本地性約束,如處理hdfs 上的數(shù)據(jù),則container 優(yōu)先分配在block 所在的datanode,如該datanode 資源不滿足要求,則優(yōu)選同機(jī)架,還不能滿足則隨機(jī)分配

Application 可以在其生命周期的任何階段請求資源,可以在一開始就請求所需的所有資源,也可以在運(yùn)行過程中動(dòng)態(tài)請求資源;如spark,采用第一種策略;而MR 則分兩個(gè)階段,map task 的資源是在一開始一次性請求,而reduce task 的資源則是在運(yùn)行過程中動(dòng)態(tài)請求;并且,任務(wù)失敗后,還可以重新請求資源進(jìn)行重試

yarn任務(wù)調(diào)度--capacity scheduler(容量調(diào)度) / fair scheduler(公平調(diào)度) //此部分見單獨(dú)文檔
由于集群資源有限,當(dāng)無法滿足眾多application 的資源請求時(shí),yarn 需要適當(dāng)?shù)牟呗詫pplication 的資源請求進(jìn)行調(diào)度;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:yarn知識體系總結(jié)-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article34/cdiope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、做網(wǎng)站外貿(mào)建站、全網(wǎng)營銷推廣品牌網(wǎng)站建設(shè)、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)