真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

怎么分析yarn的調度模式

這篇文章跟大家分析一下“怎么分析yarn的調度模式”。內容詳細易懂,對“怎么分析yarn的調度模式”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“怎么分析yarn的調度模式”的知識吧。

創(chuàng)新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于成都做網站、成都網站建設、成都外貿網站建設、西和網絡推廣、微信小程序開發(fā)、西和網絡營銷、西和企業(yè)策劃、西和品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯公司為所有大學生創(chuàng)業(yè)者提供西和建站搭建服務,24小時服務熱線:18982081108,官方網址:www.cdcxhl.com

Hadoop  YARN同時支持內存和CPU兩種資源的調度(默認只支持內存,如果想進一步調度CPU,需要自己進行一些配置),小編將介紹YARN是如何對這些資源進行調度和隔離的。yarn對于自己運行時作業(yè)的資源分配模式有Capacity Scheduler和Fair Scheduler兩種。

在YARN中,資源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的調度器負責 資源的分配,而NodeManager則負責資源的供給和隔離。ResourceManager將某個NodeManager上資源分配給任務(這就是所 謂的“資源調度”)后,NodeManager需按照要求為任務提供相應的資源,甚至保證這些資源應具有獨占性,為任務運行提供基礎的保證,這就是所謂的 資源隔離。

基于以上考慮,YARN允許用戶配置每個節(jié)點上可用的物理內存資源,注意,這里是“可用的”,因為一個節(jié)點上的內存會被若干個服務共享,比如一部分給YARN,一部分給HDFS,一部分給HBase等,YARN配置的只是自己可以使用的,配置參數如下:

(1)yarn.nodemanager.resource.memory-mb

表示該節(jié)點上YARN可使用的物理內存總量,默認是8192(MB),注意,如果你的節(jié)點內存資源不夠8GB,則需要調減小這個值,而YARN不會智能的探測節(jié)點的物理內存總量。

(2)yarn.nodemanager.vmem-pmem-ratio

任務每使用1MB物理內存,最多可使用虛擬內存量,默認是2.1。

(3) yarn.nodemanager.pmem-check-enabled

是否啟動一個線程檢查每個任務正使用的物理內存量,如果任務超出分配值,則直接將其殺掉,默認是true。

(4) yarn.nodemanager.vmem-check-enabled

是否啟動一個線程檢查每個任務正使用的虛擬內存量,如果任務超出分配值,則直接將其殺掉,默認是true。

(5)yarn.scheduler.minimum-allocation-mb

單個任務可申請的最少物理內存量,默認是1024(MB),如果一個任務申請的物理內存量少于該值,則該對應的值改為這個數。

(6)yarn.scheduler.maximum-allocation-mb

單個任務可申請的最多物理內存量,默認是8192(MB)。

默認情況下,YARN采用了線程監(jiān)控的方法判斷任務是否超量使用內存,一旦發(fā)現超量,則直接將其殺死。由于Cgroups對內存的控制缺乏靈活性 (即任務任何時刻不能超過內存上限,如果超過,則直接將其殺死或者報OOM),而Java進程在創(chuàng)建瞬間內存將翻倍,之后驟降到正常值,這種情況下,采用 線程監(jiān)控的方式更加靈活(當發(fā)現進程樹內存瞬間翻倍超過設定值時,可認為是正?,F象,不會將任務殺死),因此YARN未提供Cgroups內存隔離機制。

Capacity Scheduler

Capacity Scheduler支持以下特性:

(1) 計算能力保證。支持多個隊列,某個作業(yè)可被提交到某一個隊列中。每個隊列會配置一定比例的計算資源,且所有提交到隊列中的作業(yè)共享該隊列中的資源。

(2) 靈活性??臻e資源會被分配給那些未達到資源使用上限的隊列,當某個未達到資源的隊列需要資源時,一旦出現空閑資源資源,便會分配給他們。

(3) 支持優(yōu)先級。隊列支持作業(yè)優(yōu)先級調度(默認是FIFO)

(4) 多重租賃。綜合考慮多種約束防止單個作業(yè)、用戶或者隊列獨占隊列或者集群中的資源。

(5) 基于資源的調度。 支持資源密集型作業(yè),允許作業(yè)使用的資源量高于默認值,進而可容納不同資源需求的作業(yè)。不過,當前僅支持內存資源的調度。


想要配置能力調度模式首先我們需要將yarn-site.xml文件中設置yarn.resourcemanager.scheduler.class屬性為org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.CapacityScheduler

1.  資源分配相關參數

(1)  capacity:隊列的資源容量(百分比)。 當系統(tǒng)非常繁忙時,應保證每個隊列的容量得到滿足,而如果每個隊列應用程序較少,可將剩余資源共享給其他隊列。注意,所有隊列的容量之和應小于100。

(2)  maximum-capacity:隊列的資源使用上限(百分比)。由于存在資源共享,因此一個隊列使用的資源量可能超過其容量,而最多使用資源量可通過該參數限制。

minimum-user-limit-percent:每個用戶最低資源保障(百分比)。任何時刻,一個隊列中每個用戶可使用的資源量均有一定的限制。當一個隊列中同時運行多個用戶的應用程序時中,每個用戶的使用資源量在一個最小值和最大值之間浮動,其中,最小值取決于正在運行的應用程序數目,而最大值則由minimum-user-limit-percent決定。比如,假設minimum-user-limit-percent為25。當兩個用戶向該隊列提交應用程序時,每個用戶可使用資源量不能超過50%,如果三個用戶提交應用程序,則每個用戶可使用資源量不能超多33%,如果四個或者更多用戶提交應用程序,則每個用戶可用資源量不能超過25%。

(3)  user-limit-factor:每個用戶最多可使用的資源量(百分比)。比如,假設該值為30,則任何時刻,每個用戶使用的資源量不能超過該隊列容量的30%。

2.  限制應用程序數目相關參數

(1)  maximum-applications:集群或者隊列中同時處于等待和運行狀態(tài)的應用程序數目上限,這是一個強限制,一旦集群中應用程序數目超過該上限,后續(xù)提交的應用程序將被拒絕,默認值為 10000。所有隊列的數目上限可通過參數yarn.scheduler.capacity.maximum-applications設置(可看做默認 值),而單個隊列可通過參數yarn.scheduler.capacity..maximum- applications設置適合自己的值。

(2)  maximum-am-resource-percent:集群中用于運行應用程序 ApplicationMaster的資源比例上限,該參數通常用于限制處于活動狀態(tài)的應用程序數目。該參數類型為浮點型,默認是0.1,表示10%。所 有隊列的ApplicationMaster資源比例上限可通過參數yarn.scheduler.capacity. maximum-am-resource-percent設置(可看做默認值),而單個隊列可通過參數 yarn.scheduler.capacity.. maximum-am-resource-percent設置適合自己的值。

3.  隊列訪問和權限控制參數

(1)  state:隊列狀態(tài)可以為STOPPED或者 RUNNING,如果一個隊列處于STOPPED狀態(tài),用戶不可以將應用程序提交到該隊列或者它的子隊列中,類似的,如果ROOT隊列處于STOPPED 狀態(tài),用戶不可以向集群中提交應用程序,但正在運行的應用程序仍可以正常運行結束,以便隊列可以優(yōu)雅地退出。

(2)  acl_submit_applications:限定哪些Linux用戶/用戶組可向給定隊列中提交應用程序。需要注意的是,該屬性具有繼承性,即如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。配置該屬性時,用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。

(3)  acl_administer_queue:為隊列指定一個管理員,該管理員可控制該隊列的所有應用程序,比如殺死任意一個應用程序等。同樣,該屬性具有繼承性,如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。

Fair Scheduler

公平調度器按資源池(pool)來組織作業(yè),并把資源公平的分到這些資源池里。默認情況下,每一個用戶擁有一個獨立的資源池,以使每個用戶都能獲得 一份等同的集群資源而不管他們提交了多少作業(yè)。按用戶的 Unix 群組或作業(yè)配置(jobconf)屬性來設置作業(yè)的資源池也是可以的。在每一個資源池內,會使用公平共享(fair sharing)的方法在運行作業(yè)之間共享容量(capacity)。用戶也可以給予資源池相應的權重,以不按比例的方式共享集群。

除了提供公平共享方法外,公平調度器允許賦給資源池保證(guaranteed)最小共享資源,這個用在確保特定用戶、群組或生產應用程序總能獲取 到足夠的資源時是很有用的。當一個資源池包含作業(yè)時,它至少能獲取到它的最小共享資源,但是當資源池不完全需要它所擁有的保證共享資源時,額外的部分會在 其它資源池間進行切分。

要想配置公平調度模式首先我們需要將yarn-site.xml文件中設置yarn.resourcemanager.scheduler.class屬性為org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler

Fair Scheduler允許用戶將隊列信息專門放到一個配置文件(默認是fair-scheduler.xml),對于每個隊列,管理員可配置以下幾個選項:

(1)  minResources:最少資源保證量,設置格式為“X mb, Y vcores”,當一個隊列的最少資源保證量未滿足時,它將優(yōu)先于其他同級隊列獲得資源,對于不同的調度策略(后面會詳細介紹),最少資源保證量的含義不 同,對于fair策略,則只考慮內存資源,即如果一個隊列使用的內存資源超過了它的最少資源量,則認為它已得到了滿足;對于drf策略,則考慮主資源使用 的資源量,即如果一個隊列的主資源量超過它的最少資源量,則認為它已得到了滿足。

(2)  maxResources:最多可以使用的資源量,fair scheduler會保證每個隊列使用的資源量不會超過該隊列的最多可使用資源量。

(3)  maxRunningApps:最多同時運行的應用程序數目。通過限制該數目,可防止超量Map Task同時運行時產生的中間輸出結果撐爆磁盤。

(4)  minSharePreemptionTimeout:最小共享量搶占時間。如果一個資源池在該時間內使用的資源量一直低于最小資源量,則開始搶占資源。

(5)  schedulingMode/schedulingPolicy:隊列采用的調度模式,可以是fifo、fair或者drf。

(6)  aclSubmitApps:可向隊列中提交應用程序的Linux用戶或用戶組列表,默認情況下為“*”,表示任何用戶均可以向該隊列提交應用程序。需要注意的是,該屬性具有繼承性,即子隊列的列表會繼承父隊列的列表。配置該屬性時,用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。

(7)  aclAdministerApps:該隊列的管理員列表。一個隊列的管理員可管理該隊列中的資源和應用程序,比如可殺死任意應用程序。

管理員也可為單個用戶添加maxRunningJobs屬性限制其最多同時運行的應用程序數目。此外,管理員也可通過以下參數設置以上屬性的默認值:

(1)  userMaxJobsDefault:用戶的maxRunningJobs屬性的默認值。

(2) defaultMinSharePreemptionTimeout:隊列的minSharePreemptionTimeout屬性的默認值。

(3)  defaultPoolSchedulingMode:隊列的schedulingMode屬性的默認值。

(4)  fairSharePreemptionTimeout:公平共享量搶占時間。如果一個資源池在該時間內使用資源量一直低于公平共享量的一半,則開始搶占資源。

關于怎么分析yarn的調度模式就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下創(chuàng)新互聯網站!


當前題目:怎么分析yarn的調度模式
網頁網址:http://weahome.cn/article/gddcos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部