2019/2/19 星期二

yarn任务调度--capacity scheduler(容量调度) / fair scheduler(公平调度)
由于集群资源有限,当无法满足众多application 的资源请求时,yarn 需要适当的策略对application 的资源请求进行调度;
Scheduler 概述
Yarn 中实现的调度策略有三种:FIFO/Capacity/Fair Schedulers
(1)FIFO Scheduler:

yarn调度hive drop table卡住_调度策略

将所有application 按提交的顺序排队,先进先出
优点---->简单易懂且不用任何配置
缺点---->不适合于shared clusters;大的应用会将集群资源占满从而导致大量应用等待
小结:
1、一个队列可以使用yarn的全部资源;
2、后提交的任务必须等前面的任务运行完成之后,才可以得到资源并执行。

(2)Capacity Scheduler

yarn调度hive drop table卡住_调度策略_02

将application 划分为多条任务队列,每条队列拥有相应的资源 在队列的内部,资源分配遵循FIFO 策略队列资源支持弹性调整:一个队列的空闲资源可以分配给“饥饿”队列(注意:一旦之前的空闲队列需求增长,因为不支持“先占”,不能强制kill 资源container,则需要等待其他队列释放资源;为防止这种状况的出现,可以配置队列最大资源进行限制)
任务队列支持继承结构
小结:
最大化集群吞吐量
•核心思想
–集群资源由多个队列分享
–空闲队列可以把资源“借”给忙队列
–需要时可以取回
•调度策略
–应该获得的资源/实际获得的资源,选择比值最低的队列
–队列内FIFO
–考虑限制:单个用户使用资源、使用其他队列资源

(3)Fair Scheduler

yarn调度hive drop table卡住_调度策略_03

不需要为特定small application 保留资源,而是在需要执行时进行动态公平分配;动态资源分配有一个延后,因为需要等待large job 释放一部分资源 Small job 资源使用完毕后,large job 可以再次获得全部资源 Fair Scheduler 也支持在application queue 之间进行调度
小结:
多用户公平共享集群资源
•作业池
–每个用户单独资源池
–作业放进共享资源池
–每个作业最低资源保障
•调度策略
–默认FIFO
–队列内调度策略可配置


转载于:https://blog.51cto.com/12445535/2351785