學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

一文揭秘Hadoop家族大管家YARN

來源:北大青鳥總部 2023年07月17日 13:34

摘要: Yarn(YetAnother Resource Negotiator)是Hadoop的集群資源調(diào)度框架,提供資源管理和任務(wù)調(diào)度兩大能力,為上層服務(wù)提供統(tǒng)一的資源管理和調(diào)度,提供資源利用率。

在大數(shù)據(jù)分析和計算領(lǐng)域,那必須是Hadoop的天下??!經(jīng)過多年的發(fā)展,Hadoop家族也在不斷的壯大、完善、成熟,現(xiàn)已包含HDFS、MapReduce、Zookeeper、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等組件。

HDFS是分布式文件系統(tǒng),負責(zé)超大數(shù)據(jù)的存儲;HBase是提供高可靠、高性能、實時讀寫的分布式列式數(shù)據(jù)庫,主要存儲非結(jié)構(gòu)化數(shù)據(jù)(底層依托HDFS);MapReduce是數(shù)據(jù)計算模型,負責(zé)海量的、負責(zé)的數(shù)據(jù)計算任務(wù)處理;Hive是數(shù)據(jù)倉庫,以MapReduce為底層能力進行數(shù)據(jù)計算分析;Zookeeper是分布式服務(wù)協(xié)調(diào)框架,用于分布式應(yīng)用構(gòu)建和管理;Ambrari負責(zé)Hadoop集群的安裝、配置、部署管理;Flume提供高可用、高可靠、分布式的日志采集。

總而言之,Hadoop家族真的是非常強大啊,各種各樣的技術(shù)組件都有,這些技術(shù)組件拆開在各個領(lǐng)域,都是一等一的高手,每個組件都有自己的資源調(diào)度系統(tǒng)管理自己任務(wù)的資源分配,為業(yè)務(wù)解決著各種各樣的問題,日子過的風(fēng)生水起。

但是當(dāng)這些高手們都聚集在一起時,問題就出現(xiàn)了,有的組件可能申請不到資源,有的組件可能申請了過多資源不用,從而導(dǎo)致有的服務(wù)不能運轉(zhuǎn)、有的服務(wù)資源過度浪費。不過姜還是老的辣,我們一起來看看Hadoop是如何解決這場家族危機的吧?

Yarn(YetAnother Resource Negotiator)是Hadoop的集群資源調(diào)度框架,提供資源管理和任務(wù)調(diào)度兩大能力,為上層服務(wù)提供統(tǒng)一的資源管理和調(diào)度,提供資源利用率。



在介紹YARN之前,我們先來看看相關(guān)的名詞解釋。在YARN中有四個名詞,即ResourceManager、ApplicationMaster、NodeManager、Container,ResourceManager是全局的資源管理器(大管家),負責(zé)管理整個Hadoop集群的基礎(chǔ)資源(比如CPU、內(nèi)存),根據(jù)容量、隊列等情況,將資源分配給到各個正在運行當(dāng)中的應(yīng)用程序;ApplicationMaster是具體應(yīng)用程序運行時的管控者(小管家),它協(xié)調(diào)來自大管家的資源,分配資源給到應(yīng)用程序內(nèi)部使用,在任務(wù)運行時進行監(jiān)控,任務(wù)執(zhí)行失敗時重新申請資源并啟動任務(wù);NodeManager是應(yīng)用程序中具體實例的資源管理(小小管家),它負責(zé)管理自己節(jié)點的整個生命運行周期,接受來自小管家的安排(如啟動、停止);Container負責(zé)具體實例的運行(長工),在負責(zé)運行每個一個實例任務(wù),比如Spark計算任務(wù),同時接受小小管家的安排。



YARN是一個非常強大、非??煽康馁Y源共享型平臺,它的應(yīng)用場景也很多,比如用于Spark任務(wù)調(diào)度,接收spark的任務(wù)并處理,比如用于MapReduce任務(wù)的生命周期管理,我們以Spark任務(wù)調(diào)度為例,來看看YARN的工作流程是怎么樣呢?

現(xiàn)在我們要執(zhí)行一個Spark計算任務(wù),Spark客戶端向YARN提交計算任務(wù)的應(yīng)用程序申請;YARN的ResourceManager大管家收到請求之后,在整個資源池中尋找是否有資源可用,找到之后生成一個Container長工,并分配NodeManager小小管家進行管理,同時啟動應(yīng)用程序的ApplicationMaster小管家;小管家在執(zhí)行應(yīng)用程序的任務(wù)之前,先把自己在大管家進行報備,這樣用戶就可以在大管家那里查看應(yīng)用程序的運行狀態(tài)并進行管理了。

在長工Container的任務(wù)開始執(zhí)行后,小管家通過輪詢的方式不斷向大管家申請資源,并且把申請到的資源又分配給小小管家,安排它為長工準(zhǔn)備好工作環(huán)境、隨時恭候干活,在干活的過程中,大管家、小管家、小小管家不斷的進行通信交流,隨時知道各個長工的工作狀態(tài)、任務(wù)完成情況,在出現(xiàn)問題時及時出手進行解決,保障任務(wù)的順利完成。任務(wù)完成之后,小管家向大管家會報工作,釋放資源。



YARN不止聚焦于Hadoop家族內(nèi)的資源管理,為了使自己變得更加強大,它還開放了ApplicationMaster小管家的能力。通過上面的運行流程我們也能看到,大管家、小小管家、長工都和業(yè)務(wù)沒關(guān)系,只是任務(wù)執(zhí)行流水線上的一環(huán),只有小管家才和業(yè)務(wù)緊密管理。YARN允許第三方框架集成ApplicationMaster,支持了更多的業(yè)務(wù)類型,擴展了自己的范圍。我們??吹降腗apReduceOn YARN、SparkOn YARN、StormOn YARN等解決方案便是在YARN原生能力的集成擴展。

所謂沒有規(guī)矩,不成方圓。在一個技術(shù)生態(tài)出現(xiàn)之后,必然有對應(yīng)的管理體系出現(xiàn),正如Docker容器出現(xiàn)之后,容器調(diào)度系統(tǒng)DockerSwarm、Kubernetes就出現(xiàn)了一樣,Hadoop生態(tài)系統(tǒng)出現(xiàn)壯大后,YARN也隨之應(yīng)運而生,一切都是為了更好的服務(wù)于業(yè)務(wù)。通過本文的講解,你明白了YARN是啥?如何工作?如何管控整個Hadoop家族了嗎?


標(biāo)簽: yarn
熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接