您当前的位置:首页 > 题库大全

yarn的三种调度策略配置参数?

时间:2024-08-13 20:44:39

三种调度器

FIFO调度器

先进先出,但不适合资源公平性

容量调度器

独立的专门队列保证小作业也可以提交后就启动,队列容量是专门保留的

以整个集群的利用率为代价,与FIFO比,大作业执行的时间要长

公平调度器

不需要预留资源,调度器可以在运行的作业之间动态平衡资源,大作业启动时,因为是唯一运行的,所以获得集群的所有资源,之后小作业启动时,被分配到集群的一半的资源,这样每个作业都能公平共享资源

调度器配置

容量调度器

1) 多个组织共享集群,每个组织配置一个队列,一个队列分配一定的集群资源

2) 同一个队列可以进一步划分,同一个组织不同用户共享队列所分配的资源,使用FIFO调度

3) 队列资源不足时,可以等待其他队列释放的资源或者使用集群中其他空闲资源,这可能会使得实际使用的队列容量超出配置的容量,这叫做“弹性队列”

4) 为队列设置一个最大容量限制,可以防止队列过多侵占其他队列资源

容量调度器配置

在capacity-scheduler.xml配置yarn.scheduler.capacity..

作业的队列放置

job放置的队列取决于job本身,可以在mapreduce中配置mapreduce.job.queuename,如果队列不存在,则报错,不指定则使用默认default队列

队列名是指队列层次的最后一层,不包含之前路径

公平调度器

既实现了用户队列间的公平调度,也实现了队列内作业间的公平调度

假设用户A,B各自拥有队列Q1,Q2

1) A先启动一个job J1,则J1占用集群所有资源

2) B启动一个job J2,则Q1中的J1需要分一半资源给Q2中的J2

3) B又启动一个job J3,则Q2中的J2需要分一半资源给Q2中的J3

公平调度器配置

1) 因为yarn-site.xml中默认使用容量调度器(CDH除外),首先修改其中yarn.resourcemanager.scheduler.class为公平调度器:

org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler

2) 可以修改队列内的调度策略,默认使用公平调度,也支持FIFO

job的队列放置

1) 使用基于规则的系统确定job队列放置,匹配对应的用户队列直到使用default队列

2) 直接就使用default,所有job公平分配

抢占

允许调度器终止占用资源超过公平共享份额队列的容器,这些容器资源释放后被分配给资源数量低于应得份额的队列

抢占的影响:因为被终止的容器需要重新执行而降低集群效率

抢占超时设置

yarn.scheduler.fair.preemption

设置超时参数,设定时间都是秒级别

1) 最小共享抢占

defaultMinSharePreemptionTimeout

指定时间未获得被承诺的最小共享资源,调度器则抢占其他容器

2) 公平共享抢占

defaultFairSharePreemptionTimeout

指定时间获得资源低于公平共享份额的一半,调度器抢占其他容器。

队列

|| 相关文章
    无相关信息
最新文章