介绍
容量调度器,Apache hadoop3.x 默认的调度策略
支持多队列,每个队列可配置指定的资源(内存、CPU),每个队列采用 FIFO调度策略,先进先出,如下图:
并行度
同一时刻,一个队列只有一个任务在执行,集群的并行度为队列的个数
应用场景
一般公司有 1-3 个集群,线上业务、开发调试、测试等,会同时运行多个应用,都使用这个集群
容量调度器支持多队列,可让多个应用同时执行
案例
解释:
- root:根队列,逻辑概念
- default:该队列划分资源 较多,如:用于线上业务,占
70%资源 - dev:用于开发的队列,划分资源 较少,占用
30%资源
且又划分了2个子队列:- group1:占
15%资源 - group2:占
15%资源
- group1:占
运行应用
三个队列同时按照任务的先后顺序依次执行,先同时运行 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% 资源



