zoukankan      html  css  js  c++  java
  • 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>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    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>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 默认调度算法的考量因子是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

    参考资料学习

    正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
  • 相关阅读:
    socket编程原理
    配置Symbian WINS Emulator
    mysql 的乱码解决方法
    深入剖析关于JSP和Servlet对中文的处理
    一个分众传媒业务员的销售日记
    中移动第四季度SP评级结果出炉 A级企业仅5家
    基于socket的聊天室实现原理
    看Linux内核源码 练内力必备技能
    Dell要收购AMD?
    同步执行其他程序(dos命令)
  • 原文地址:https://www.cnblogs.com/candlia/p/11920293.html
Copyright © 2011-2022 走看看