新聞中心
首先在yarn-site.xml中,將配置參數(shù)yarn.resourcemanager.scheduler.class設(shè)置為org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的滴道網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Fair Scheduler的配置選項(xiàng)包括兩部分,其中一部分在yarn-site.xml中,主要用于配置調(diào)度器級(jí)別的參數(shù),另外一部分在一個(gè)自定義配置文件(默認(rèn)是fair-scheduler.xml)中,主要用于配置各個(gè)隊(duì)列的資源量、權(quán)重等信息。
想要了解Fair Scheduler是什么,可閱讀我的這篇文章“Hadoop公平調(diào)度器分析”。
1. 配置文件yarn-site.xml
(1) yarn.scheduler.fair.allocation.file :自定義XML配置文件所在位置,該文件主要用于描述各個(gè)隊(duì)列的屬性,比如資源量、權(quán)重等,具體配置格式將在后面介紹。
(2) yarn.scheduler.fair.user-as-default-queue:當(dāng)應(yīng)用程序未指定隊(duì)列名時(shí),是否指定用戶名作為應(yīng)用程序所在的隊(duì)列名。如果設(shè)置為false或者未設(shè)置,所有未知隊(duì)列的應(yīng)用程序?qū)⒈惶峤坏絛efault隊(duì)列中,默認(rèn)值為true。
(3) yarn.scheduler.fair.preemption:是否啟用搶占機(jī)制,默認(rèn)值是false。
(4) yarn.scheduler.fair.sizebasedweight:在一個(gè)隊(duì)列內(nèi)部分配資源時(shí),默認(rèn)情況下,采用公平輪詢的方法將資源分配各各個(gè)應(yīng)用程序,而該參數(shù)則提供了另外一種資源分配方式:按照應(yīng)用程序資源需求數(shù)目分配資源,即需求資源數(shù)量越多,分配的資源越多。默認(rèn)情況下,該參數(shù)值為false。
(5) yarn.scheduler.assignmultiple:是否啟動(dòng)批量分配功能。當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)大量資源時(shí),可以一次分配完成,也可以多次分配完成。默認(rèn)情況下,該參數(shù)值為false。
(6) yarn.scheduler.fair.max.assign:如果開啟批量分配功能,可指定一次分配的container數(shù)目。默認(rèn)情況下,該參數(shù)值為-1,表示不限制。
(7) yarn.scheduler.fair.locality.threshold.node:當(dāng)應(yīng)用 程序請(qǐng)求某個(gè)節(jié)點(diǎn)上資源時(shí),它可以接受的可跳過的***資源調(diào)度機(jī)會(huì)。當(dāng)按照分配策略,可將一個(gè)節(jié)點(diǎn)上的資源分配給某個(gè)應(yīng)用程序時(shí),如果該節(jié)點(diǎn)不是應(yīng)用程序 期望的節(jié)點(diǎn),可選擇跳過該分配機(jī)會(huì)暫時(shí)將資源分配給其他應(yīng)用程序,直到出現(xiàn)滿足該應(yīng)用程序需的節(jié)點(diǎn)資源出現(xiàn)。通常而言,一次心跳代表一次調(diào)度機(jī)會(huì),而該參 數(shù)則表示跳過調(diào)度機(jī)會(huì)占節(jié)點(diǎn)總數(shù)的比例,默認(rèn)情況下,該值為-1.0,表示不跳過任何調(diào)度機(jī)會(huì)。
(8) yarn.scheduler.fair.locality.threshold.rack:當(dāng)應(yīng)用程序請(qǐng)求某個(gè)機(jī)架上資源時(shí),它可以接受的可跳過的***資源調(diào)度機(jī)會(huì)。
(9) yarn.scheduler.increment-allocation-mb:內(nèi)存規(guī)整化單位,默認(rèn)是1024,這意味著,如果一個(gè)Container請(qǐng)求資源是1.5GB,則將被調(diào)度器規(guī)整化為ceiling(1.5 GB / 1GB) * 1G=2GB。
(10) yarn.scheduler.increment-allocation-vcores:虛擬CPU規(guī)整化單位,默認(rèn)是1,含義與內(nèi)存規(guī)整化單位類似。
2. 自定義配置文件
Fair Scheduler允許用戶將隊(duì)列信息專門放到一個(gè)配置文件(默認(rèn)是fair-scheduler.xml),對(duì)于每個(gè)隊(duì)列,管理員可配置以下幾個(gè)選項(xiàng):
(1) minResources :最少資源保證量,設(shè)置格式為“X mb, Y vcores”,當(dāng)一個(gè)隊(duì)列的最少資源保證量未滿足時(shí),它將優(yōu)先于其他同級(jí)隊(duì)列獲得資源,對(duì)于不同的調(diào)度策略(后面會(huì)詳細(xì)介紹),最少資源保證量的含義不 同,對(duì)于fair策略,則只考慮內(nèi)存資源,即如果一個(gè)隊(duì)列使用的內(nèi)存資源超過了它的最少資源量,則認(rèn)為它已得到了滿足;對(duì)于drf策略,則考慮主資源使用 的資源量,即如果一個(gè)隊(duì)列的主資源量超過它的最少資源量,則認(rèn)為它已得到了滿足。
(2) maxResources:最多可以使用的資源量,fair scheduler會(huì)保證每個(gè)隊(duì)列使用的資源量不會(huì)超過該隊(duì)列的最多可使用資源量。
(3) maxRunningApps:最多同時(shí)運(yùn)行的應(yīng)用程序數(shù)目。通過限制該數(shù)目,可防止超量Map Task同時(shí)運(yùn)行時(shí)產(chǎn)生的中間輸出結(jié)果撐爆磁盤。
(4) minSharePreemptionTimeout:最小共享量搶占時(shí)間。如果一個(gè)資源池在該時(shí)間內(nèi)使用的資源量一直低于最小資源量,則開始搶占資源。
(5) schedulingMode/schedulingPolicy:隊(duì)列采用的調(diào)度模式,可以是fifo、fair或者drf。
(6) aclSubmitApps:可向隊(duì)列中提交應(yīng)用程序的Linux用戶或用戶組列表,默認(rèn)情況下為“*”,表示任何用戶均可以向該隊(duì)列提交應(yīng)用程序。需要注意的是,該屬性具有繼承性,即子隊(duì)列的列表會(huì)繼承父隊(duì)列的列表。配置該屬性時(shí),用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。
(7) aclAdministerApps:該隊(duì)列的管理員列表。一個(gè)隊(duì)列的管理員可管理該隊(duì)列中的資源和應(yīng)用程序,比如可殺死任意應(yīng)用程序。
管理員也可為單個(gè)用戶添加maxRunningJobs屬性限制其最多同時(shí)運(yùn)行的應(yīng)用程序數(shù)目。此外,管理員也可通過以下參數(shù)設(shè)置以上屬性的默認(rèn)值:
(1) userMaxJobsDefault:用戶的maxRunningJobs屬性的默認(rèn)值。
(2) defaultMinSharePreemptionTimeout :隊(duì)列的minSharePreemptionTimeout屬性的默認(rèn)值。
(3) defaultPoolSchedulingMode:隊(duì)列的schedulingMode屬性的默認(rèn)值。
(4) fairSharePreemptionTimeout:公平共享量搶占時(shí)間。如果一個(gè)資源池在該時(shí)間內(nèi)使用資源量一直低于公平共享量的一半,則開始搶占資源。
【實(shí) 例】假設(shè)要為一個(gè)Hadoop集 群設(shè)置三個(gè)隊(duì)列queueA、queueB和queueC,其中,queueB和queueC為queueA的子隊(duì)列,且規(guī)定普通用戶最多可同時(shí)運(yùn)行40 個(gè)應(yīng)用程序,但用戶userA最多可同時(shí)運(yùn)行400個(gè)應(yīng)用程序,那么可在自定義配置文件中進(jìn)行如下設(shè)置:
100 mb, 100 vcores 150 mb, 150 vcores 200 300 1.0 30 mb, 30 vcores 50 mb, 50 vcores 50 mb, 50 vcores 50 mb, 50 vcores 400 40 6000
本文題目:HadoopYARN配置參數(shù)剖析(4)—FairScheduler相關(guān)參數(shù)
路徑分享:http://m.5511xx.com/article/dhjhdpp.html


咨詢
建站咨詢
