(1)Hadoop 调度器主要分为三类:
FIFO 调度器、Capacity Scheduler(容量调度器)和 Fair Scheduler(公平调度器)。
Hadoop3.x 中 Yarn 的默认的资源调度器是 Capacity Scheduler(容量调度器)。
(apache 默认是容量调度器,CDH 默认是公平调度器)
容量、公平调度器默认是一个 default 队列,需要配置创建多个队列
(2)区别:
FIFO 调度器:先进先出,同一时间队列中只有一个任务在执行,并且按照先进先出的顺序给应用分配资源。
容量调度器:支持多队列、多用户,队列之间可以借用资源,每个队列内部先进先出,即优先满足先进来的任务执行,同一时间队列中只有一个任务在执行。队列的并行度为队列的个数。
公平调度器:支持多队列、多用户,队列直接可以借用资源,每个队列内部按照缺额大小分配资源启动任务,同一时间队列中可以有多个任务执行,在队列中任务公平地享有队列资源。队列的并行度大于等于队列的个数。
注意:企业生产环境一定不会用 FIFO 调度器,要么是 Capacity Scheduler(容量调度器),要么是 Fair Scheduler(公平调度器)。
一般中小场一般用 Capacity Scheduler(容量调度器),对并发度要求不高;
中大厂用 Fair Scheduler(公平调度器),因为对并发度要求比较高,所以选择公平。