- Apache Hadoop3.1.3 默认的资源调度器是 Capacity Scheduler
- CDH 框架默认调度器是 Fair Scheduler。
总述
Hadoop 作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)
<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>
FIFO
单队列,根据提交作业的先后顺序,先来先服务
优点:简单易懂;
缺点:不支持多队列,生产环境很少使用;
Capacity
特点
- 多队列:
每个队列可配置一定的资源量,每个队列采用FIFO调度策略。
- 容量保证:
管理员可为每个队列设置资源最低保证和资源使用上限
- 灵活性:
如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。
- 多租户:
支持多用户共享集群和多应用程序同时运行。 为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定
分配顺序:三步走
- 选择队列: 从root开始,使用深度优先算法,优先选择资源占用率最低的队列分配资源。
- 选择作业:默认按照提交作业的优先级和提交时间顺序分配资源。
- 选择容器:按照容器的优先级分配资源; 如果优先级相同,按照数据本地性原则
Fair

特点
- 所有作业获得公平的资源
- 公平调度器每个队列资源分配策略如果选择FIFO的话,此时公平调度器相当于上面讲过的容量调度器
- 调度器会优先为缺额大的作业分配资源
- 缺额:某一时刻一个作业应获资源和实际获取资源的差距叫“缺额”
-
与Capacity的不同
队列选择不同:容量调度器优先选择资源占用率低的队列、公平调度器优先选择对资源缺额比例大的队列。
- 每个队列可设置的资源分配方式不同:容量调度器可选FIFO&DRF、公平调度器可选FIFO&DRF&FAIR(默认是fair)

