yarn的调度器
- FIFO Scheduler
- Capacity Scheduler
- Fair Scheduler
Apche中默认为容量调度器
CDH中默认是公平调度器
在生产上更多使用公平调度器
①FIFO调度器 支持单队列 先进先出
按照任务提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中第一个任务分配资源,待第一个任务资源满足后再分配下一个(比如这个队列设置了10个G资源,队列中任务按提交顺序排列job1,job2,job3…,job1分配了6G,然后job2需要4G,剩的4G分配给job2,job3要等前面任务有释放的资源再给分配).
缺点:大的任务会占用所有资源造成小任务堵塞.
②Capacity容量调度器 支持多队列 每个队列都采用FIFO策略,按照应用提交的顺序来分配资源
如果其中一个队列中的资源被他队列中的任务全部占用了,这个队列中的其它未分配资源的任务就会抢占其它空闲队列的资源.如果被抢占资源的队列进来任务就会将被抢占的资源再抢占回来.
我们可以适使用资源占比小的队列专门处理小任务,这样可以保证大任务再运行的时候小任务一提交就会运行.
缺点:就是大任务执行时间会变长.
③Fair公平调度器 支持多队列 保证每个队列中任务公平享有资源
一个队列中进来一个大任务,这个大任务会分配这个队列所有资源,然后又进来小任务,大任务会分配一半资源给小任务,第二个任务分配资源是有延迟的要等待第一个任务释放占用的资源,小任务运行完会释放自己占用的资源,大任务又会获得所有的资源.
优点:可以得到高的资源利用率,又能保证小任务及时完成.