全部課程
發(fā)布時間: 2019-08-25 14:37:47
容量調(diào)度器的介紹
容量調(diào)度器使得Hadoop應(yīng)用能夠共享的、多用戶的、操作簡便的運行在集群上,同時較大化集群的吞吐量和利用率。
容量調(diào)度器以隊列為單位劃分資源,每個隊列都有資源使用的下限和上限。每個用戶可以設(shè)定資源使用上限。管理員可以約束單個隊列、用戶或作業(yè)的資源使用。支持作業(yè)優(yōu)先級,但不支持資源搶占。
容量調(diào)度器的特點
容量保證:管理員可為每個隊列設(shè)置資源最低保證和資源使用上限,所有提交到該隊列的應(yīng)用程序共享這些資源。
靈活性:如果一個隊列中的資源有剩余,可以暫時共享給那些需要資源的隊列,當(dāng)該隊列有新的應(yīng)用程序提交,則其他隊列釋放的資源會歸還給該隊列。
支持優(yōu)先級:隊列支持任務(wù)優(yōu)先級調(diào)度(默認(rèn)是FIFO)。
多重租賃:支持多用戶共享集群和多應(yīng)用程序同時運行。為防止單個應(yīng)用程序、用戶或者隊列獨占集群資源,管理員可為之增加多重約束。
動態(tài)更新配置文件:管理員可根據(jù)需要動態(tài)修改配置參數(shù),以實現(xiàn)在線集群管理。
容量調(diào)度器的任務(wù)選擇
調(diào)度時,首先按以下策略選擇一個合適隊列:
資源利用量最低的隊列優(yōu)先,比如同級的兩個隊列Q1和Q2,它們的容量均為30,而Q1已使用10,Q2已使用12,則會優(yōu)先將資源分配給Q1。
最小隊列層級優(yōu)先,例如:QueueA與QueueB.childQueueB,則QueueA優(yōu)先。
資源回收請求隊列優(yōu)先。
然后按以下策略選擇該隊列中一個任務(wù):
按照任務(wù)優(yōu)先級和提交時間順序選擇,同時考慮用戶資源量限制和內(nèi)存限制。
隊列的創(chuàng)建是在多租戶頁面,當(dāng)創(chuàng)建一個租戶關(guān)聯(lián)YARN服務(wù)時,會創(chuàng)建同名的隊列。比如先創(chuàng)建QueueA,QueueB兩個租戶,即對應(yīng)YARN兩個隊列。
隊列的資源容量(百分比),有default、QueueA、QueueB三個隊列,每個隊列都有一個[隊列名].capacity配置:
Default隊列容量為整個集群資源的20%。
QueueA隊列容量為整個集群資源的10%。
QueueB隊列容量為整個集群資源的10%,后臺有一個影子隊列root-default使隊列之和達到100% 。
共享空閑資源
由于存在資源共享,因此一個隊列使用的資源可能超過其容量(例如QueueA.capacity),而較大資源使用量可通過參數(shù)限制。
如果某個隊列任務(wù)較少,可將剩余資源共享給其他隊列,例如QueueA的maximum-capacity配置為100,假設(shè)當(dāng)前只有QueueA在運行任務(wù),理論上QueueA可以占用整個集群100%的資源。
用戶限制
每個用戶最低資源保障(百分比):
任何時刻,一個隊列中每個用戶可使用的資源量均有一定的限制,當(dāng)一個隊列中同時運行多個用戶的任務(wù)時,每個用戶的可使用資源量在一個最小值與較大值之間浮動,其中,較大值取決于正在運行的任務(wù)數(shù)目,而最小值則由minimum-user-limit-percent決定。
例如,設(shè)置隊列A的這個值為25,即Yarn.scheduler.capacity.root.QueueA.minimum-user-limit-percent=25,那么隨著提任務(wù)的用戶增加,隊列資源的調(diào)整如下:
?
每個用戶最多可使用的資源量(所在隊列容量的倍數(shù)):
queue容量的倍數(shù),用來設(shè)置一個user可以獲取更多的資源。 Yarn.scheduler.capacity.root.QueueD.user-limit-factor=1。默認(rèn)值為1,表示一個user獲取的資源容量不能超過queue配置的capacity,無論集群有多少空閑資源,最多不超過maximum-capacity。
較大活躍任務(wù)數(shù):
整個集群中允許的較大活躍任務(wù)數(shù),包括運行或掛起狀態(tài)的所有任務(wù),當(dāng)提交的任務(wù)申請數(shù)據(jù)達到限制以后,新提交的任務(wù)將會被拒絕。默認(rèn)值10000。
每個隊列較大任務(wù)數(shù):
對于每個隊列,可以提交的較大任務(wù)數(shù),以QueueA為例,可以在隊列配置頁面配置,默認(rèn)是1000,即此隊列允許最多1000個活躍任務(wù)。
每個用戶可以提交的較大任務(wù)數(shù):
這個數(shù)值依賴每個隊列較大任務(wù)數(shù)。根據(jù)上面的數(shù)據(jù), QueueA最多可以提交1000個任務(wù),那么對于每個用戶而言,可以向QueueA提交的較大任務(wù)數(shù)為1000* 用戶最低資源保障率(假設(shè)25%)* 用戶可使用隊列資源的倍數(shù)(假設(shè)1)。
上一篇: 人工智能AI培訓(xùn)_中文文本分詞