调度器

三种调度器

FIFO Scheduler 先进先出
Capacity Scheduler 计算
FairScheduler 公平 生产一般用这个

1.FIFO Scheduler

FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个先进先出队列,
在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,
以此类推。
FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于共享集群。
大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。
在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,
这两个调度器都允许大任务和小任务在提交的同时获得一定的系统资源。

2.Capacity Scheduler

对于Capacity调度器,有一个专门的队列用来运行小任务,
但是为小任务专门设置一个队列会预先占用一定的集群资源,
这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。

3.Fair Scheduler

在Fair调度器中,我们不需要预先占用一定的系统资源,
Fair调度器会为所有运行的job动态的调整系统资源。
当第一个大job提交时,只有这一个job在运行,此时它获得了所有集群资源;
当第二个小任务提交后,Fair调度器会分配一半资源给这个小任
务,让这两个任务公平的共享集群资源。

需要注意的是
在Fair调度器中,从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的
Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。
最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2017-2021 WANG Qi
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信