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