久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何理解Yarn的工作機制

221次閱讀
沒有評論

共計 1609 個字符,預計需要花費 5 分鐘才能閱讀完成。

如何理解 Yarn 的工作機制,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

我們知道 YARN 是 Hadoop 資源管理器,無論是 MapReduce 應用還是 Spark 應用,應該都會用到 Yarn。

今天我們就來聊聊 Yarn 的組成以及工作流程:

先介紹幾個角色

ResourceManager

一個集群只有一個 RM,它是 YARN 的總指揮,負責協調集群上的計算資源,它有以下兩個組件:

ApplicationsManager:這個不是 ApplicationMaster,注意區分。它會接受 Job 的提交請求,調度 Container 用于啟動 ApplicationMaster,以及負責 ApplicationMaster 的失敗重啟。

Scheduler:調度器純粹為應用程序分配資源,它不會監控應用的狀態,這里的調度就是基于 Container 這個抽象的資源容器,包含內存、CPU、磁盤、網絡等。

NodeManager

一個集群中有多個 NodeManager,它負責啟動 Container,監控 Container 的資源使用情況(cpu、內存、磁盤、網絡),并將這些信息匯報給 RM。一個 NodeManager 上可以有多個 Container。

Container

Container 是一組硬件資源的抽象,包含 CPU、內存、磁盤、網絡等,所有的 Job 都是在 Container 中運行;

ApplicationMaster

與 RM 協商資源,并與 NodeManager 一起監控任務,ApplicationMaster 和 Job 一樣,都是運行在 Container 中。

下面我們詳細了解下一個任務是怎么提交到 Yarn 中運行的。

第 1 步:Client 向 RM 發起任務請求:「RM,我要執行一個任務」

第 2 步:RM 給 Client 返回 Application ID 等信息:「好的,給你分配一個 Application ID」

第 3 步:Client 根據返回的信息,檢查作業的輸入輸出目錄是否正確、計算作業輸入分片是否正常,將運行作業需要的資源(作業 Jar 文件、配置文件、輸入分片)復制到以 Application ID 命名的 HDFS 目錄中。

第 4 步:Client 向 RM 正式提交作業:「我都準備好了,執行任務吧」

第 5 步:RM 將請求信息傳遞給自己的小弟 Scheduler:「Scheduler 老弟,你來分配個 Container」

第 6 步:Scheduler 分配 Container,用于啟動 ApplicationMaster:「好的,這個 Container 就是 0 號選手」

第 7 步:ApplicationsManager 與指定的 NodeManager 通信,要求在 Container 中啟動 ApplicationMaster。

第 8 步:ApplicationMaster 初始化任務并向 RM 申請所需要的資源:「RM 大哥,給我資源運行任務」

第 9 步:RM 返回 ApplicationMaster 申請的資源:「給你 1、2   兩個 NodeManager」

第 10 步:ApplicationMaster 與對應的 NodeManager 通信,申請 Container 啟動任務「NodeManager 大哥,給我啟動 Container 運行這個任務」

第 11 步:Container 中的應用程序會先將需要的計算資源從 HDFS 下載到本地,再啟動任務:「都給我跑起來」

第 12 步:運行過程中,任務會將狀態和進度報告給 ApplicationMaster,Client 會輪詢 ApplicationMaster 獲取狀態。

第 13 步:運行完成后,Container 會注銷掉,也就是把資源歸還給系統,ApplicationMaster 向 RM 注銷自己。

關于如何理解 Yarn 的工作機制問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1609字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 嘉定区| 石台县| 太康县| 青浦区| 乌苏市| 大同市| 育儿| 金阳县| 云南省| 烟台市| 五家渠市| 鄯善县| 顺昌县| 瑞昌市| 左贡县| 民权县| 甘孜| 湘潭县| 玛曲县| 农安县| 揭西县| 镇巴县| 中阳县| 闽侯县| 富蕴县| 昂仁县| 巴林左旗| 绥滨县| 康平县| 宣化县| 锡林浩特市| 开阳县| 南江县| 新宁县| 安福县| 邢台市| 长沙市| 五莲县| 神农架林区| 张家港市| 历史|