您好,登錄后才能下訂單哦!
分布式資源調度框架Yarn如何理解,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Yarn作為一個資源管理、任務調度的框架,其重要性不言而喻。尤其是在近些年的大數據面試中,更是面試題的重點知識之一。為了大家在面試的時候,能夠準備的更加充分,小編整理了一份有關分布式資源調度框架Yarn的大數據面試題,內容包括Yarn的架構、工作流程、調度器Scheduler。
1、Yarn的架構
Yarn是一個資源管理、任務調度的框架, 主要包含三大模塊:ResourceManager(RM)、NodeManager(NM)、
ApplicationMaster(AM)。
(1)ResourceManager 負責所有資源的監控、分配和管理;
(2)ApplicationMaster 負責每一個具體應用程序的調度和協調;
(3)NodeManager 負責每一個節點的維護。對于所有的 applications,RM 擁有絕對的控制權和對資源的分配權。而每個 AM 則會和 RM 協商資源,同時和NodeManager 通信來執行和監控 task。
2、Yarn的工作流程
(1)client 向 RM 提交應用程序,其中包括啟動該應用的 ApplicationMaster 的必須信息,例如 ApplicationMaster 程序、啟動 ApplicationMaster 的命令、用戶程序等。
(2)ResourceManager 啟動一個 container 用于運行 ApplicationMaster。啟動中的 ApplicationMaster 向 ResourceManager 注冊自己,啟動成功后與 RM 保持心跳。
(3)ApplicationMaster 向 ResourceManager 發送請求, 申請相應數目的container。
(4)ResourceManager 返回 ApplicationMaster 的申請的 containers 信息。申請成功的container,由 ApplicationMaster 進行初始化。container 的啟動信息初始化后,AM與對應的 NodeManager 通信,要求 NM 啟動 container。AM 與 NM 保持心跳,從而對 NM 上運行的任務進行監控和管理。
(5)container 運行期間,ApplicationMaster 對 container 進行監控。container 通過 RPC協議向對應的 AM 匯報自己的進度和狀態等信息。
(6)應用運行期間,client 直接與 AM 通信獲取應用的狀態、進度更新等信息。
(7)應用運行結束后,ApplicationMaster 向 ResourceManager 注銷自己,并允許屬于它的 container 被收回。
3、Yarn的調度器Scheduler。
Yarn 中,負責給應用分配資源的就是 Scheduler,三種調度器可以選擇: FIFO Scheduler ,Capacity Scheduler,FairScheduler 。
(1)FIFO Scheduler
FIFO Scheduler 把應用按提交的順序排成一個隊列,這是一個 先進先出隊列, 在進行資源分配的時候,先給隊列中最頭上的應用進行分配資源,待最頭上的應用需求滿足后再給下一個分配,以此類推。
(2)Capacity Scheduler
Capacity 調度器允許多個組織共享整個集群,每個組織可以獲得集群的一部分計算能力。通過為每個組織分配專門的隊列,然后再為每個隊列分配一定的集群資源,這樣整個集群就可以通過設置多個隊列的方式給多個組織提供服務了。除此之外,隊列內部又可以垂直劃分,這樣一個組織內部的多個成員就可以共享這個隊列資源了,在一個隊列內部,資源的調度是采用的是先進先出(FIFO)策略。
(3)Fair Scheduler
在 Fair 調度器中,我們不需要預先占用一定的系統資源,Fair 調度器會為所有運行的 job 動態的調整系統資源。如下圖所示,當第一個大 job 提交時, 只有這一個 job 在運行,此時它獲得了所有集群資源;當第二個小任務提交后,Fair 調度器會分配一半資源給這個小任務,讓這兩個任務公平的共享集群資源。
關于分布式資源調度框架Yarn如何理解問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。