Yarn中主要包含3中调度器,FIFO Scheduler(先进先出调度器),Capacity Scheduler(容量调度器),Fair Scheduler(公平调度器)
- FIFO Scheduler,单队列调度器,也就是说单一队列使用集群全部资源,应用作业在队列中按照先进先出的顺序执行。
FIFO Scheduler 是最简单也是最容易理解的调度器,但是该调度器不适合共享集群,大的作业可能占用了所有的集群资源,导致后续的小应用作业处于阻塞状态而无法运行。
- Capacity Scheduler,多队列调度器,通过多个队列共享使用集群资源的容量调度器。
Capacity Scheduler 调度器适用于共享集群,可以设置多个队列来执行作业,队列之间共享集群资源,队列内部作业采用FIFO的方式执行。可以为每个队列设置资源使用的范围,如果一个队列的资源没有使用完,可以被其他队列共享使用,队列与队列之间的资源管理是平行的关系。
- Fair Scheduler,多队列调度器,通过多个队列共享使用集群资源。
Fair Scheduler 调度器适用于共享集群,队列内部默认平分资源,队列之间共享资源也可以设置一定的比例。
- Fair Scheduler与Capacity Scheduler区别
- 资源公平共享:在每个队列中,Fair Scheduler可选择按照FIFO、Fair或DRF策略为应用程序分配资源。Fair策略即平均分配,默认情况下,每个队列采用该方式分配资源
- 支持资源抢占:当某个队列中有剩余资源时,调度器会将这些资源共享给其他队列,而当该队列中有新的应用程序提交时,调度器要为它回收资源。为了尽可能降低不必要的计算浪费,调度器采用了先等待再强制回收的策略,即如果等待一段时间后尚有未归还的资源,则会进行资源抢占;从那些超额使用资源的队列中杀死一部分任务,进而释放资源
- 负载均衡:Fair Scheduler提供了一个基于任务数的负载均衡机制,该机制尽可能将系统中的任务均匀分配到各个节点上。此外,用户也可以根据自己的需求设计负载均衡机制
- 调度策略灵活配置:Fiar Scheduler允许管理员为每个队列单独设置调度策略(当前支持FIFO、Fair或DRF三种)
- 提高小应用程序响应时间:由于采用了最大最小公平算法,小作业可以快速获取资源并运行完成
网友评论