溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hadoop Yarn調(diào)度器Scheduler的特點是什么

發(fā)布時間:2021-12-10 11:52:30 來源:億速云 閱讀:169 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“hadoop Yarn調(diào)度器Scheduler的特點是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“hadoop Yarn調(diào)度器Scheduler的特點是什么”吧!

概述

集群資源是非常有限的,在多用戶、多任務(wù)環(huán)境下,需要有一個協(xié)調(diào)者,來保證在有限資源或業(yè)務(wù)約束下有序調(diào)度任務(wù),YARN資源調(diào)度器就是這個協(xié)調(diào)者。

YARN調(diào)度器有多種實現(xiàn),自帶的調(diào)度器為Capacity Scheduler和Fair Scheduler。YARN資源調(diào)度器均實現(xiàn)Resource Scheduler接口,是一個插拔式組件,用戶可以通過配置參數(shù)來使用不同的調(diào)度器,也可以自己按照接口規(guī)范編寫新的資源調(diào)度器。默認情況下,YARN采用的是Capacity Scheduler調(diào)度器。

Capacity Scheduler

Capacity Scheduler簡介

Capacity Scheduler(計算能力調(diào)度器)是由Yahoo貢獻的,主要是解決HADOOP-3421中提出的,在調(diào)度器上完成HOD(Hadoop On Demand)功能,克服已有HOD的性能低效的缺點。它適合于多用戶共享集群的環(huán)境的調(diào)度器。在多用戶的情況下,達到最大化集群的吞吐和利用率的目的。

Capacity 調(diào)度器允許多個組織共享整個集群,每個組織可以獲得集群的一部分計算能力。通過為每個組織分配專門的隊列,然后再為每個隊列分配一定的集群資源,這樣整個集群就可以通過設(shè)置多個隊列的方式給多個組織提供服務(wù)了。除此之外,隊列內(nèi)部又可以垂直劃分,這樣一個組織內(nèi)部的多個成員就可以共享這個隊列資源了,在一個隊列內(nèi)部,資源的調(diào)度是采用的是先進先出(FIFO)策略。

一個job可能使用不了整個隊列的資源。然而如果這個隊列中運行多個job,如果這個隊列的資源夠用,那么就分配給這些job,如果這個隊列的資源不夠用了呢?其實Capacity調(diào)度器仍可能分配額外的資源給這個隊列,這就是彈性隊列(queue elasticity)的概念。

在正常的操作中,Capacity調(diào)度器不會強制釋放Container,當一個隊列資源不夠用時,這個隊列只能獲得其它隊列釋放后的Container資源。當然,我們可以為隊列設(shè)置一個最大資源使用量,以免這個隊列過多的占用空閑資源,導(dǎo)致其它隊列無法使用這些空閑資源,這就是彈性隊列需要權(quán)衡的地方。

hadoop Yarn調(diào)度器Scheduler的特點是什么

Capacity Scheduler特點

  • 容量保證:每個隊列都分配了一部分容量,他們可以支配著部分資源。提交到特定隊列的應(yīng)用程序,可以使用該隊列的資源。管理員可以配置每個隊列容量的最低保證和資源使用上限。

  • 安全性:每個隊列都有嚴格的ACL(控制訪問列表),它可以控制用戶提交應(yīng)用程序到特定隊列上。同時保證用戶不能查看或修改其它用戶提交的應(yīng)用程序,并且隊列管理員和集群系統(tǒng)管理員可以對其進行維護。

  • 靈活性:隊列的空閑資源可以分配各其它隊列使用。如果某隊列的資源分配未達到隊列資源使用上限,在其需要更多資源時,將分配其它隊列的空閑資源給該繁忙隊列。

  • 多用戶性:支持多用戶共享集群,一些列的綜合設(shè)置可以防止單個應(yīng)用程序、用戶或隊列獨占隊里或集群的全部資源。

  • 可操作性:支持運行時配置和隊列停止。隊列的屬性(例如:資源容量分配、ACL等)可以在運行時由管理員以一種安全的方式更改,從而減少了對用戶的影響。同時提供給管理員和用戶一個界面,用于查看當前隊列資源的使用情況。管理員可以在集群運行時添加新隊列,可以在停止運行的隊列的同時保證隊列上的任務(wù)運行完成,而新的任務(wù)不能提交到該隊列上。注意現(xiàn)在不支持在運行時刪除隊列,如果需要刪除隊列,需要重啟集群。

  • 層級隊列:層級隊列可確保資源在該組織的子隊列之間被共享,從而提供更多的可控制性和預(yù)測性。

  • 基于資源的調(diào)度:支持資源密集型的應(yīng)用程序,允許應(yīng)用程序使用的資源量高于默認值,從而該調(diào)度器可以支持不同資源需求的應(yīng)用程序。目前只支持內(nèi)存資源的配置,通過配置可支持CPU資源。

Fair Scheduler

Fair Scheduler是由Facebook貢獻的,是Hadoop上一個可插拔式的調(diào)度器,允許YARN應(yīng)用程序在一個大的集群上公平地共享資源。

公平調(diào)度是一種為應(yīng)用程序分配資源的方法,多用戶的情況下,強調(diào)用戶公平地使用資源。默認情況下Fair Scheduler根據(jù)內(nèi)存資源對應(yīng)用程序進行公平調(diào)度,通過配置可以修改為根據(jù)內(nèi)存和CPU兩種資源進行調(diào)度。當集群中只有一個應(yīng)用程序運行時,那么此應(yīng)用程序占用這個集群資源。當其他的應(yīng)用程序提交后,那些釋放的資源將會被分配給新的應(yīng)用程序,所以每個應(yīng)用程序最終都能獲取幾乎一樣多的資源。

在Fair Scheduler中,不需要預(yù)先占用一定的系統(tǒng)資源,F(xiàn)air Scheduler會動態(tài)調(diào)整應(yīng)用程序的資源分配。例如,當?shù)谝粋€大job提交時,只有這一個job在運行,此時它獲得了所有集群資源;當?shù)诙€小任務(wù)提交后,F(xiàn)air調(diào)度器會分配一半資源給這個小任務(wù),讓這兩個任務(wù)公平的共享集群資源。

需要注意的是,在下圖Fair Scheduler中,從第二個任務(wù)提交到獲得資源會有一定的延遲,因為它需要等待第一個任務(wù)釋放占用的Container。小任務(wù)執(zhí)行完成之后也會釋放自己占用的資源,大任務(wù)又獲得了全部的系統(tǒng)資源。

hadoop Yarn調(diào)度器Scheduler的特點是什么

Fair Scheduler將應(yīng)用程序支持以隊列的方式組織,這些隊列之間公平的共享資源。默認,所有的用戶共享一個隊列。如果應(yīng)用程序在請求資源時指定了隊列,那么請求將會被提交到指定的隊列中。也可以通過配置,根據(jù)用戶名稱來分配隊列。在每個隊列內(nèi)部,應(yīng)用程序基于內(nèi)存公平共享或FIFO共享資源。

舉個例子,假設(shè)有兩個用戶A和B,他們分別擁有一個隊列。當A啟動一個job而B沒有任務(wù)時,A會獲得全部集群資源;當B啟動一個job后,A的job會繼續(xù)運行,不過一會兒之后兩個任務(wù)會各自獲得一半的集群資源。如果此時B再啟動第二個job并且其它job還在運行,則它將會和B的第一個job共享B這個隊列的資源,也就是B的兩個job會用于四分之一的集群資源,而A的job仍然用于集群一半的資源,結(jié)果就是資源最終在兩個用戶之間平等的共享。過程如下圖所示:

hadoop Yarn調(diào)度器Scheduler的特點是什么

Fair Scheduler允許為隊列分配擔(dān)最小的共享資源量,這樣可以保證某些用戶、groups或者應(yīng)用程序總能獲取充足的資源。當一個隊列中有正在運行的應(yīng)用程序時,它至少能夠獲取設(shè)置的最小資源,當隊列中無任務(wù)時,它的資源將會被拆分給其他運行中的任務(wù)。

Fair Scheudler在默認情況下允許所有的任務(wù)運行,但是這也可以通過配置文件來限制每個用戶下和每個隊列下運行的任務(wù)個數(shù)。處于限制時,新提交的任務(wù)不會提交失敗,而是在Scheduler queue中等待,直到先前的任務(wù)結(jié)束,再執(zhí)行。

Fair Scheduler vs Capacity Scheduler

  • 相同點

    • 都支持多用戶多隊列,即:適用于多用戶共享集群的應(yīng)用環(huán)境

    • 都支持層級隊列

    • 支持配置動態(tài)修改,更好的保證了集群的穩(wěn)定運行。

    • 均支持資源共享,即某個隊列中的資源有剩余時,可共享給其他缺資源的隊列

    • 單個隊列均支持優(yōu)先級和FIFO調(diào)度方式

  • 不同點
    Capacity Scheduler與Fair Scheduler最大的區(qū)別為調(diào)度策略的不同

    • Capacity Scheduler的調(diào)度策略是,可以先選擇資源利用率低的隊列,然后在隊列中通過FIFO或DRF進行調(diào)度。

    • Fair Scheduler的調(diào)度策略是,可以使用公平排序算法選擇隊列,然后再隊列中通過Fair(默認)、FIFO或DRF的方式進行調(diào)度。

感謝各位的閱讀,以上就是“hadoop Yarn調(diào)度器Scheduler的特點是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對hadoop Yarn調(diào)度器Scheduler的特點是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI