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

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


咨詢
建站咨詢
