日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop-Yarn-框架原理及运作机制

發(fā)布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop-Yarn-框架原理及运作机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、YARN基本架構

? ??YARN是Hadoop?2.0中的資源管理系統(tǒng),它的基本設計思想是將MRv1中的JobTracker拆分成了兩個獨立的服務:一個全局的資源管理器ResourceManager和每個應用程序特有的ApplicationMaster。其中ResourceManager負責整個系統(tǒng)的資源管理和分配,而ApplicationMaster負責單個應用程序的管理。

二、YARN基本組成結構

? ??YARN 總體上仍然是Master/Slave結構,在整個資源管理框架中,ResourceManager為Master,NodeManager為 Slave,ResourceManager負責對各個NodeManager上的資源進行統(tǒng)一管理和調度。當用戶提交一個應用程序時,需要提供一個用以 跟蹤和管理這個程序的ApplicationMaster,它負責向ResourceManager申請資源,并要求NodeManger啟動可以占用一 定資源的任務。由于不同的ApplicationMaster被分布到不同的節(jié)點上,因此它們之間不會相互影響。在本小節(jié)中,我們將對YARN的基本組成 結構進行紹。?

? ? YARN 運行的基本架構如下圖:

? ? ? 圖描述了YARN的基本組成結構,YARN主要由ResourceManager、NodeManager、ApplicationMaster(圖中給出了MapReduce和MPI兩種計算框架的ApplicationMaster,分別為MR AppMstr和MPI AppMstr)和Container等幾個組件構成。??

? ?

1. ResourceManager(MR)

? ? RM是一個全局的資源管理器,負責整個系統(tǒng)餓資源管理和分配。它主要有兩個組件構成:調度器(Scheduler)和應用程序管理器(Applications Manaher,ASM)

? ? 1) 調度器

? ? 調度器根據(jù)容量、隊列等限制條件(如每個隊列分配一定的資源,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個正在運行的應用程序。需要注意的是,該調度器是一個“純調度器”,它不再從事任何與具體應用程序相關的工作,比如不負責監(jiān)控或者跟蹤應用的執(zhí)行狀態(tài)等,也不負責重新啟動因應用執(zhí) 行失敗或者硬件故障而產生的失敗任務,這些均交由應用程序相關的ApplicationMaster完成。調度器僅根據(jù)各個應用程序的資源需求進行資源分 配,而資源分配單位用一個抽象概念“資源容器”(Resource Container,簡稱Container)表示,Container是一個動態(tài)資源分配單位,它將內存、 CPU、磁盤、網絡等資源封裝在一起,從而限定每個任務使用的資源量。此外,該調度器是一個可插拔的組件,用戶可根據(jù)自己的需要設計新的調度器,YARN 提供了多種直接可用的調度器,比如FIFO,Fair Scheduler和Capacity Scheduler等。

2)?應用程序管理器

? ? ?應用程序管理器負責管理整個系統(tǒng)中所有應用程序,包括應用程序提交、與調度器協(xié)商資源以啟動ApplicationMaster、監(jiān)控ApplicationMaster運行狀態(tài)并在失敗時重新啟動它等。

2. ApplicationMaster(AM)

? ? 用戶提交的每個應用程序均包含1個AM,主要功能包括:

? ? 1) 與RM調度器協(xié)商以獲取資源(用Container表示);

? ? 2) 將得到的任務進一步分配給內部的任務;

? ? 3) 與NM通信以啟動/停止任務;

? ? 4) 監(jiān)控所有任務運行狀態(tài),并在任務運行失敗時重新為任務申請資源以重啟任務。

? ? 當前YARN 自帶了兩個AM實現(xiàn),一個是用于演示AM編寫方法的實例程序distributed shell,它可以申請一定數(shù)目的Container以并行運行一個 Shell命令或者Shell腳本;另一個是運行MapReduce應用程序的AM—MRAppMaster。此外,一些其 他的計算框架對應的AM正在開發(fā)中,比如Open MPI、Spark等。

3. NodeManager(NM)
? ?NM是每個節(jié)點上的資源和任務管理器,一方面,它會定時地向RM匯報本節(jié)點上的資源使用情況和各個Container的運行狀態(tài);另一方面,它接收并處理來自AM的Container啟動/停止等各種請求

4. Container

? ? ?Container 是YARN中的資源抽象,它封裝了某個節(jié)點上的多維度資源,如內存、CPU、磁盤、網絡等,當AM向RM申請資源時,RM為AM返回的資源便是用 Container表示的。YARN會為每個任務分配一個Container,且該任務只能使用該Container中描述的資源。

? ? ?需要注意的是,Container不同于MRv1中的slot,它是一個動態(tài)資源劃分單位,是根據(jù)應用程序的需求動態(tài)生成的。截至本書完成時,YARN僅支持CPU和內存兩種資源,且使用了輕量級資源隔離機制Cgroups進行資源隔離。

5. YARN 工作流程

當用戶向YARN中提交一個應用程序后,YARN將分兩個階段運行該應用程序:

? ? 第一個階段是啟動ApplicationMaster;

? ? 第二個階段是由ApplicationMaster創(chuàng)建應用程序,為它申請資源,并監(jiān)控它的整個運行過程,直到運行完成。

YARN的工作流程分為以下幾個步驟:

?

?

步驟1: 用戶向YARN中提交應用程序,其中包括ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。

步驟2: ResourceManager為該應用程序分配第一個Container,并與對應的Node-Manager通信,要求它在這個Container中啟動應用程序的ApplicationMaster。

步驟3: ApplicationMaster首先向ResourceManager注冊,這樣用戶可以直接通過ResourceManager查看應用程序的運行狀態(tài),然后它將為各個任務申請資源,并監(jiān)控它的運行狀態(tài),直到運行結束,即重復步驟4~7。

步驟4: ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請和領取資源。

步驟5: 一旦ApplicationMaster申請到資源后,便與對應的NodeManager通信,要求它啟動任務。

步驟6: NodeManager為任務設置好運行環(huán)境(包括環(huán)境變量、JAR包、二進制程序等)后,將任務啟動命令寫到一個腳本中,并通過運行該腳本啟動任務。

步驟7: 各個任務通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,以讓ApplicationMaster隨時掌握各個任務的運行狀態(tài),從而可以在任務失敗時重新啟動任務。在應用程序運行過程中,用戶可隨時通過RPC向ApplicationMaster查詢應用程序的當前運行狀態(tài)。

步驟8: 應用程序運行完成后,ApplicationMaster向ResourceManager注銷并關閉自己。

?

??

?

轉載于:https://www.cnblogs.com/yyy-blog/p/6939861.html

總結

以上是生活随笔為你收集整理的Hadoop-Yarn-框架原理及运作机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。