admin管理员组

文章数量:1611503

yarn通过可插拔方式提供调度策略,由于FIFO对多用户情况欠缺,这里只介绍容量调度(capacity)和公平调度器(fair);

相同点:

1.支持多队列多用户,提高集群资源利用率;

2.支持动态加载配置文件,比如修改了配置,yarn rmadmin -refreshQueues即可刷新;

3.支持资源抢占和批量分配;

不同点:

1.队列间资源分配方面,capacity是资源满足比率最低的队列优先,fair是Fair、FIFO或者DRF(按照主资源公平调度算法进行调度)

2.container资源粒度,capacity是最小资源的倍数,fair可以通过设置yarn.scheduler.increment-allocation-mb来设置规整化,另外还有cpu规整;

3.队列间资源配置,capacity是按比例分配的,任意层总量和为100,不管集群配置多少资源都是按照这个比例来分配,fair是按照配置多少资源来限制的,比如102400 mb,50 vcores;

4.负载均衡,capacity不支持,fair支持,一个心跳请求分配多个任务,先请求的会领完资源,fair调度可以设置yarn.scheduler.fair.max.assign=1来避免,即分配的container数目为1;

Capacity Scheduler:

CapacityScheduler支持有以下特性:

  • 分层次的队列 - 支持分层次的队列结构,确保允许其他队列使用可用资源之前,在组织的子队列之间共享资源,提供更多的控制和可预测性。

  • 容量保证 - 队列分配到一部分的容量,某种程度上可以自行处理自己的容量,提交到队列的所有应用程序将可以访问分配给队列的容量。 管理员可以给每个队列的容量配置软限制和可选硬限制来保证队列资源容量。

  • Security - 每个队列都有严格的ACL控制哪些用户可以将应用程序提交给单个队列。 此外,还有一些保护措施,以确保用户无法查看或修改其他用户的app。 此外,还支持每队列还支持系统管理员角色。

  • 弹性- 空闲资源可以分配给超出其容量的任何队列,当运行低于容量的队列的需求资源时,被分配出去的资源运行完,这些资源就可以分配给运行低于容量的的队列(支持抢占)。 这确保资源以可预测和弹性地提供到队列中。

  • 多租户- 可以提供一整套的限制来防止单一的应用、用户和队列贪婪地占用整个集群的资源

  • 可操作性

    • 运行时配置 - 队列的定义和属性,例如:capacity,ACLs可以在运行时被修改,通过管理员采用一种安全的方式可以将对用户的影响降到最低。另外,为用户和管理员提供了控制台,进行查看系统中当前资源分配给哪些队列。管理员能够在运行时新增队列,但是不能在运行时删除。
    • 排干应用程序 - 管理员能够在运行时停止队列,以此确保新的应用程序不会被提交到该队列,已有的应用程序能够运行完成。如果一个队列处在STOPPED状态,新的应用程序不能被提交到队列自身以及它的子队列。已经存在的应用程序可以继续完成,这样队列可以优雅的退出。管理员能够启动和停止队列。
  • 基于资源的调度 - 支持资源密集型的应用程序,应用程序可以指定比默认值更高的资源需求,并支持不同种类的资源的需求。目前,内存是支持的资源需求。

  • 基于用户和组的队列映射 - 这个特性基于用户和组能够允许用户映射一个作业到特定的队列。


capacity-scheduler.xml默认放在HADOOP_CONF_DIR/下,例子如下:


<configuration>

  <property>
    <name>yarn.scheduler.capacity.maximum-applications</name>
    <value>10000</value>
    <description>
      最多运行和挂起的作业数.
    </description>
  </property>

 <property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>0.1</value>
    <description>
     AM占集群资源的最大比例.
    </description>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>mobile_kpi,pc_kpi</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.mobile_kpi.queues</name>
    <value>search,ranking</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.pc_kpi.capacity</name>
    <value>40</value>

    <description>
    软限制,多余的资源,作业可以使用这些资源,加了些弹性
    </description>

  </property>
  <property>
    <name>yarn.scheduler.capacity.root.mobile_kpi.capacity</name>
    <value>60</value>
  </property>
 

  <property>
    <name>yarn.scheduler.capacity.root.mobile_kpi.ranking.capacity</name>
    <value>75</value> <

本文标签: yarnFAIRCapacity