Yarn中使用FairScheduler进行任务调度

Yarn提供可插拔的调度的算法,用于解决application之间资源竞争问题.
根据当前多租户多应用类型的应用场景,我们使用FairSchedule资源调度算法,来管理我们用户提交的队列、队列资源竞争.

主要涉及的配置文件有yarn-site.xml、fair-scheduler.xml

yarn-site.xml

只配置了几个觉得必须的项.

<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property> #是否将采用用户名作为默认的queue name.
    <name>yarn.scheduler.fair.user-as-default-queue</name>
    <value>false</value>
</property>
<property>  #是否抢占.
    <name>yarn.scheduler.fair.preemption</name>
    <value>true</value>
</property>
<property>  
    <name>yarn.scheduler.fair.allocation.file</name>
    <value>/data/conf/hadoop/fair-scheduler.xml</value>
</property>

fair-scheduler.xml

<allocations>
  <user name="data">
    <maxRunningApps>60</maxRunningApps>
  </user>

  <userMaxAppsDefault>5</userMaxAppsDefault>
  <queueMaxAppsDefault>20</queueMaxAppsDefault>
  <defaultFairSharePreemptionTimeout>10</defaultFairSharePreemptionTimeout>
  <defaultMinSharePreemptionTimeout>5</defaultMinSharePreemptionTimeout>
  <defaultQueueSchedulingPolicy>drf</defaultQueueSchedulingPolicy>

  <queue name="root">
    <aclSubmitApps> </aclSubmitApps>
    <aclAdministerApps> </aclAdministerApps>

    <queue name="long">
      <minResources>88064 mb, 37 vcores</minResources>
      <maxResources>413696 mb, 126 vcores</maxResources>
      <weight>4.0</weight>
      <aclSubmitApps> long</aclSubmitApps>
      <aclAdministerApps> long</aclAdministerApps>
      <fairSharePreemptionTimeout>300</fairSharePreemptionTimeout>
      <minSharePreemptionTimeout>200</minSharePreemptionTimeout>
    </queue>
  <queuePlacementPolicy>
    <rule name="specified" create="false"/>
    <rule name="reject"/>
  </queuePlacementPolicy>
</allocations>
  • 默认调度算法的考量因子是memory,但是也可以也可以设置DRF(Dominant Resource Fairness), 会考虑mem和vcore的资源.
  • priorities的使用

the priorities are used as weights to determine the fraction of total resources that each app should get.

当队列没有任务时,最小资源可以被其他队列抢走;当有新的任务进来时,如果集群有资源则获取资源,如果没有则会从其他低优先级的队列中抢到资源,执行任务

  • 哪些情况下会发生抢占

    • 最小资源抢占, 当前queue的资源无法保障时,而又有apps运行,需要向外抢占.
    • 公平调度抢占, 当前queue的资源为达到max,而又有apps运行,需要向外抢占.
  • ACL权限控制
    目前简单的就是使用,基于linux用户、用户组账号的ACL

有两个控制,提交应用、管理应用: aclSubmitApps、aclAdministerApps

参考资料学习

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值