Capacity Scheduler 队列设置

先附一个官网地址


Capacity Scheduler是YARN中默认的资源调度器。

  1. 相关参数配置:
  1. 资源分配相关参数
(1) capacity:队列的资源容量(百分比)。 当系统非常繁忙时,应保证每个队列的容量得到满足,而如果每个队列应用程序较少,可将剩余资源共享给其他队列。
    注意,所有队列的容量之和应小于100。
(2) maximum-capacity:队列的资源使用上限(百分比)。由于存在资源共享,因此一个队列使用的资源量可能超过其容量,而最多使用资源量可通过该参数限制。
(3) minimum-user-limit-percent:每个用户最低资源保障(百分比)。任何时刻,一个队列中每个用户可使用的资源量均有一定的限制。
    当一个队列中同时运行多个用户的应用程序时中,每个用户的使用资源量在一个最小值和最大值之间浮动,其中,最小值取决于正在运行的应用程序数目,
    而最大值则由minimum-user-limit-percent决定。比如,假设minimum-user-limit-percent25。当两个用户向该队列提交应用程序时,每个用户可使用资源量
    不能超过50%,如果三个用户提交应用程序,则每个用户可使用资源量不能超多33%,如果四个或者更多用户提交应用程序,则每个用户可用资源量不能超过25%。
(4) user-limit-factor:决定每个用户可使用的资源是否可以超过队列的资源,如果是1.2则表示可用的资源量是队列资源的1.2倍。
  1. 限制应用程序数目相关参数
(1) maximum-applications :集群或者队列中同时处于等待和运行状态的应用程序数目上限,这是一个强限制,一旦集群中应用程序数目超过该上限,
    后续提交的应用程序将被拒绝,默认值为10000。所有队列的数目上限可通过参数yarn.scheduler.capacity.maximum-applications设置(可看做默认值),
    而单个队列可通过参数yarn.scheduler.capacity.<queue-path>.maximum-applications设置适合自己的值。
(2) maximum-am-resource-percent:集群中用于运行应用程序ApplicationMaster的资源比例上限,该参数通常用于限制处于活动状态的应用程序数目。
    该参数类型为浮点型,默认是0.1,表示10%。所有队列的ApplicationMaster资源比例上限可通过参数yarn.scheduler.capacity.maximum-am-resource-percent设置   
    (可看做默认值),而单个队列可通过参数yarn.scheduler.capacity.<queue-path>. maximum-am-resource-percent设置适合自己的值。
  1. 队列访问和权限控制参数
(1) state :队列状态可以为STOPPED或者RUNNING,如果一个队列处于STOPPED状态,用户不可以将应用程序提交到该队列或者它的子队列中,类似的,
    如果ROOT队列处于STOPPED状态,用户不可以向集群中提交应用程序,但正在运行的应用程序仍可以正常运行结束,以便队列可以优雅地退出。
(2) acl_submit_applications:限定哪些Linux用户/用户组可向给定队列中提交应用程序。需要注意的是,该属性具有继承性,
    即如果一个用户可以向某个队列中提交应用程序,则它可以向它的所有子队列中提交应用程序。配置该属性时,
    用户之间或用户组之间用“,”分割,用户和用户组之间用空格分割,比如“user1, user2 group1,group2”。
(3) acl_administer_queue:为队列指定一个管理员,该管理员可控制该队列的所有应用程序,比如杀死任意一个应用程序等。
    同样,该属性具有继承性,如果一个用户可以向某个队列中提交应用程序,则它可以向它的所有子队列中提交应用程序。
  1. 实例:

<configuration>
  <property>
    <name>yarn.scheduler.capacity.root.queuesname>
    <value>default,devvalue>
    <description>root队列的所有子队列description>
  property>

    
  <property>
    <name>yarn.scheduler.capacity.root.dev.capacityname>
    <value>60value>
    <description>dev队列的资源容量description>
  property>

    <property>
    <name>yarn.scheduler.capacity.root.dev.maximum-capacityname>
    <value>75value>
    <description>dev队列可使用的资源上限description>
  property>

    <property>
    <name>yarn.scheduler.capacity.root.dev.user-limit-factorname>
    <value>1value>
    <description>决定每个用户可使用的资源是否可以超过队列的资源description>
  property>
  
  <property>
    <name>yarn.scheduler.capacity.root.dev.minimum-user-limit-percentname>
    <value>20value>
    <description>每个用户最低资源保障description>
  property>

    
    <property>
    <name>yarn.scheduler.capacity.root.dev.maximum-applicationsname>
    <value>100value>
    <description>dev队列最多可同时处于等待和运行状态的应用程序数目description>
  property>
  
  <property>
    <name>yarn.scheduler.capacity.root.dev.maximum-am-resource-percentname>
    <value>0.1value>
    <description>dev队列可用于运行AM的资源比例上限,这通常用于限制并发运行的应用程序数目description>
  property>

    
  <property>
    <name>yarn.scheduler.capacity.root.dev.statename>
    <value>RUNNINGvalue>
    <description>dev队列的状态,可以是RUNNING或者STOPPEDdescription>
  property>

  <property>
    <name>yarn.scheduler.capacity.root.dev.acl_administer_queuename>
    <value>adminvalue>
    <description>为dev队列指定管理员description>
  property>
  
  <property>
    <name>yarn.scheduler.capacity.root.dev.acl_submit_applicationsname>
    <value>adminvalue>
    <description>限定哪些Linux用户/用户组可以向dev队列提交应用程序description>
  property>
configuration>

你可能感兴趣的:(yarn)