首先在yarn-site.xml中,将配置参数yarn.resourcemanager.scheduler.class设置为org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。

首先在YARN-site.xml中,将装备参数yarn.resourcemanager.scheduler.class设置为org.apache.Hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。

Hadoop YARN装备参数分析(4)—Fair Scheduler相关参数(hadoop yarn命令)  YARN 第1张

Fair Scheduler的装备选项包含两部分,其间一部分在yarn-site.xml中,首要用于装备调度器等级的参数,别的一部分在一个自定义装备文件(默许是fair-scheduler.xml)中,首要用于装备各个行列的资源量、权重等信息。

想要了解Fair Scheduler是什么,可阅览我的这篇文章“Hadoop公正调度器剖析”。

1. 装备文件yarn-site.xml

(1) yarn.scheduler.fair.allocation.file :自定义XML装备文件地点位置,该文件首要用于描绘各个行列的特点,比方资源量、权重等,具体装备格局将在后边介绍。

(2) yarn.scheduler.fair.user-as-default-queue:当运用程序未指定行列名时,是否指定用户名作为运用程序地点的行列名。假如设置为false或许未设置,一切不知道行列的运用程序将被提交到default行列中,默许值为true。

(3) yarn.scheduler.fair.preemption:是否启用抢占机制,默许值是false。

(4) yarn.scheduler.fair.sizebasedweight:在一个行列内部分配资源时,默许状况下,选用公正轮询的办法将资源分配各各个运用程序,而该参数则供给了别的一种资源分配方法:依照运用程序资源需求数目分配资源,即需求资源数量越多,分配的资源越多。默许状况下,该参数值为false。

(5) yarn.scheduler.assignmultiple:是否发动批量分配功用。当一个节点呈现很多资源时,能够一次分配完结,也能够屡次分配完结。默许状况下,该参数值为false。

(6) yarn.scheduler.fair.max.assign:假如敞开批量分配功用,可指定一次分配的container数目。默许状况下,该参数值为-1,表明不约束。

(7) yarn.scheduler.fair.locality.threshold.node:当运用 程序恳求某个节点上资源时,它能够承受的可越过的***资源调度时机。当依照分配战略,可将一个节点上的资源分配给某个运用程序时,假如该节点不是运用程序 希望的节点,可选择越过该分配时机暂时将资源分配给其他运用程序,直到呈现满意该运用程序需的节点资源呈现。一般而言,一次心跳代表一次调度时机,而该参 数则表明越过调度时机占节点总数的份额,默许状况下,该值为-1.0,表明不越过任何调度时机。

(8) yarn.scheduler.fair.locality.threshold.rack:当运用程序恳求某个机架上资源时,它能够承受的可越过的***资源调度时机。

(9) yarn.scheduler.increment-allocation-mb:内存规整化单位,默许是1024,这意味着,假如一个Container恳求资源是1.5GB,则将被调度器规整化为ceiling(1.5 GB / 1GB) * 1G=2GB。

(10) yarn.scheduler.increment-allocation-vcores:虚拟CPU规整化单位,默许是1,意义与内存规整化单位相似。

2. 自定义装备文件

Fair Scheduler答应用户将行列信息专门放到一个装备文件(默许是fair-scheduler.xml),关于每个行列,办理员可装备以下几个选项:

(1) minResources :最少资源确保量,设置格局为“X mb, Y vcores”,当一个行列的最少资源确保量未满意时,它将优先于其他同级行列取得资源,关于不同的调度战略(后边会具体介绍),最少资源确保量的意义不 同,关于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:公正同享量抢占时刻。假如一个资源池在该时刻内运用资源量一向低于公正同享量的一半,则开端抢占资源。

】假定要为一个Hadoop集 群设置三个行列queueA、queueB和queueC,其间,queueB和queueC为queueA的子行列,且规则普通用户最多可一起运转40 个运用程序,但用户userA最多可一起运转400个运用程序,那么可在自定义装备文件中进行如下设置:

  1. <allocations>
  2. <queuename=”queueA”>
  3. <minResources>100mb,100vcores</minResources>
  4. <maxResources>150mb,150vcores</maxResources>
  5. <maxRunningApps>200</maxRunningApps>
  6. <minSharePreemptionTimeout>300</minSharePreemptionTimeout>
  7. <weight>1.0</weight>
  8. <queuename=”queueB”>
  9. <minResources>30mb,30vcores</minResources>
  10. <maxResources>50mb,50vcores</maxResources>
  11. </queue>
  12. <queuename=”queueC”>
  13. <minResources>50mb,50vcores</minResources>
  14. <maxResources>50mb,50vcores</maxResources>
  15. </queue>
  16. </queue>
  17. <username=”userA”>
  18. <maxRunningApps>400</maxRunningApps>
  19. </user>
  20. <userMaxAppsDefault>40</userMaxAppsDefault>
  21. <fairSharePreemptionTimeout>6000</fairSharePreemptionTimeout>
  22. </allocations>

原文链接:http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/

转载请说明出处
知优网 » Hadoop YARN装备参数分析(4)—Fair Scheduler相关参数(hadoop yarn命令)

发表评论

您需要后才能发表评论