您好,登錄后才能下訂單哦!
這篇文章主要講解了“大數據Apache Hadoop YARN工作原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“大數據Apache Hadoop YARN工作原理是什么”吧!
一、Apache Hadoop YARN基本構成
Master/Slave結構,1 個ResourceManager(RM)對應多個 NodeManager(NM);YARN 由 Client、ResourceManager、NodeManager、ApplicationMaster (AM)組成;Client 向 RM 提交任務、殺死任務等;AM由對應的應用程序完成;每個應用程序對應一個 AM,AM向RM申請資源用于在NM上啟動相應的 Task;NM 向 RM通過心跳信息:匯報 NM健康狀況、任務執行狀況、領取任務等;
大數據系列之Hadoop的資源管理模塊YARN
1、RM:整個集群只有一個,負責集群資源的統一管理和調度:
處理來自客戶端的請求(啟動/殺死應用程序);啟動/監控 AM;一旦某個 AM 掛了之后,RM 將會在另外一個節點上啟動該 AM;監控 NM,接收 NM的心跳匯報信息并分配任務到 NM去執行;一旦某個 NM掛了,標志下該 NM 上的任務,來告訴對應的 AM 如何處理;負責整個集群的資源分配和調度;
2、NM:整個集群中有多個,負責單節點資源管理和使用
周期性向 RM匯報本節點上的資源使用情況和各個 Container 的運行狀;接收并處理來自 RM 的 Container 啟動/停止的各種命令;處理來自 AM的命令;負責單個節點上的資源管理和任務調度;
3、AM:每個應用一個,負責應用程序的管理
數據切分;為應用程序/作業向 RM 申請資源(Container),并分配給內部任務;與 NM通信以啟動/停止任務;任務監控和容錯(在任務執行失敗時重新為該任務申請資源以重啟任務);處理 RM發過來的命令:殺死 Container、讓 NM重啟等;
4、Container:對任務運行環境的抽象
任務運行資源(節點、內存、CPU);任務啟動命令;任務運行環境;任務是運行在Container中,一個Container中既可以運行AM也可以運行具體的Map/Reduce/MPI/SparkTask;
二、YARN工作原理
用戶向YARN 中提交應用程序/作業,其中包括 ApplicaitonMaster 程序、啟動ApplicationMaster 的命令、用戶程序等;ResourceManager 為作業分配第一個 Container,并與對應的 NodeManager 通信,要求它在這個 Containter 中啟動該作業的 ApplicationMaster;ApplicationMaster 首 先 向 ResourceManager 注 冊 , 這 樣 用 戶 可 以 直 接 通 過ResourceManager 查詢作業的運行狀態;然后它將為各個任務申請資源并監控任務的運行狀態,直到運行結束。即重復步驟 4-7;ApplicationMaster 采用輪詢的方式通過 RPC 請求向 ResourceManager 申請和領取資源;
一旦 ApplicationMaster 申請到資源后,便與對應的 NodeManager 通信,要求它啟動任務;NodeManager 啟動任務;各個任務通過 RPC 協議向 ApplicationMaster 匯報自己的狀態和進度,以讓ApplicaitonMaster 隨時掌握各個任務的運行狀態,從而可以在任務失敗時重新啟動任務;在作業運行過程中,用戶可隨時通過 RPC 向 ApplicationMaster 查詢作業當前運行狀態;作業完成后,ApplicationMaster 向 ResourceManager 注銷并關閉自己;
三、YARN容錯性
ResourceMananger基于 ZooKeeper 實現 HA 避免單點故障;NodeManager執行失敗后,ResourceManager 將失敗任務告訴對應的 ApplicationMaster;由 ApplicationMaster 決定如何處理失敗的任務;ApplicationMaster執行失敗后,由 ResourceManager 負責重啟;ApplicationMaster 需處理內部任務的容錯問題;RMAppMaster 會保存已經運行完成的 Task,重啟后無需重新運行。
四、YARN調度框架
1、雙層調度框架
ResourceManager 將資源分配給 ApplicationMaster;ApplicationMaster 將資源進一步分配給各個 TASK;
2、基于資源預留的調度策略
資源不夠時,會為 Task 預留,直到資源充足;描述:當一個 Task 需要 10G 資源時,各個節點都不足 10G,那么就選擇一個節點,但是某個 NodeManager上只有 2G, 那么就在這個 NodeManager上預留, 當這個 NodeManager上釋放其他資源后,會將資源預留給 10G 的作業,直到攢夠 10G 時,啟動 Task;缺點:資源利用率不高,要先攢著,等到 10G 才利用,造成集群的資源利用率低;
與"all or nothing"策略不同描述:當一個作業需要 10G 資源時,節點都不足 10G慢慢等,等到某個節點上有 10G 空閑資源時再運行,很可能會導致該 Task停工。
感謝各位的閱讀,以上就是“大數據Apache Hadoop YARN工作原理是什么”的內容了,經過本文的學習后,相信大家對大數據Apache Hadoop YARN工作原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。