hadoop3.x yarn 调度策略:Capacity Scheduler

介绍

容量调度器,Apache hadoop3.x 默认的调度策略

支持多队列,每个队列可配置指定的资源(内存、CPU),每个队列采用 FIFO调度策略,先进先出,如下图:

并行度

同一时刻,一个队列只有一个任务在执行,集群的并行度为队列的个数

应用场景

一般公司有 1-3 个集群,线上业务、开发调试、测试等,会同时运行多个应用,都使用这个集群

容量调度器支持多队列,可让多个应用同时执行

案例

解释:

  • root:根队列,逻辑概念
  • default:该队列划分资源 较多,如:用于线上业务,占 70% 资源
  • dev:用于开发的队列,划分资源 较少,占用 30% 资源
    且又划分了 2个子队列:
    • group1:占 15% 资源
    • group2:占 15% 资源

运行应用

三个队列同时按照任务的先后顺序依次执行,先同时运行 app1、app21、app31,后面的应用等待

特点

优点

  • 容量保证:为每个队列设置资源的上限和下限,保证每个队列不会占用整个集群

  • 弹性分配:如果一个队列中的资源有剩余,可暂时共享给其他队列

  • 多租户:支持多用户共享集群,多应用程序同时运行。

  • 动态修改:修改配置不需要重启

  • 按照提交作业的优先级和提交时间顺序分配资源

缺点

配置复杂

配置

yarn-site.xml

在 $hadoop_HOME/etc/hadoop/yarn-site.xml 配置:

<property>
    <description>The class to use as the resource scheduler.</description>
    <name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

Apache hadoop3.x 默认使用该调度策略,所以不需要配置

capacity-scheduler.xml

在 hadoop_HOME/etc/hadoop/capacity-scheduler.xml 配置:

默认只有一个 default 队列,占 100% 资源


原文出处:/show_1IX2Ev41qiCX.html