YARN调度器(Scheduler)

YARN调度器(Scheduler)

理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。

在Yarn中,负责给应用分配资源的就是Scheduler

其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。

FIFO Scheduler(先进先出调度器)

1. 先提交的作业,就先执行

2. 有一个缺点:不能在共享集群里面用,所以就说不能在YRAN里面调度方式,但是可以在每一个调度器里面使用的。

 

Capacity Scheduler(容量调度器)

 

FairS cheduler(公平调度器)

1. 公平调度器,就是能够共享整个集群的资源

2. 不用预先占用资源,每一个作业都是共享的

3. 每当提交一个作业的时候,就会占用整个资源。如果再提交一个作业,那么第一个作业就会分给第二个作业一部分资源,第一个作业也就释放一部分资源。再提交其他的作业时,也同理。。。。也就是说每一个作业进来,都有机会获取资源。

 

资源:resource Scheduler

Fair Scheduler与Capacity Scheduler不同之处主要体现在以下几个方面:

· 资源公平共享:在每个队列中,Fair Scheduler可选择按照FIFO、Fair或DRF策略为应用程序分配资源。Fair策略即平均分配,默认情况下,每个队列采用该方式分配资源

· 支持资源抢占:当某个队列中有剩余资源时,调度器会将这些资源共享给其他队列,而当该队列中有新的应用程序提交时,调度器要为它回收资源。为了尽可能降低不必要的计算浪费,调度器采用了先等待再强制回收的策略,即如果等待一段时间后尚有未归还的资源,则会进行资源抢占;从那些超额使用资源的队列中杀死一部分任务,进而释放资源

· 负载均衡:Fair Scheduler提供了一个基于任务数的负载均衡机制,该机制尽可能将系统中的任务均匀分配到各个节点上。此外,用户也可以根据自己的需求设计负载均衡机制

· 调度策略灵活配置:Fiar Scheduler允许管理员为每个队列单独设置调度策略(当前支持FIFO、Fair或DRF三种)

· 提高小应用程序响应时间:由于采用了最大最小公平算法,小作业可以快速获取资源并运行完成

猜你喜欢

转载自blog.csdn.net/zhanaolu4821/article/details/82148329