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

164次

问题描述:

调度类型有哪三种

推荐答案

2023-10-24 17:27:02

三种调度器

FIFO调度器

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

容量调度器

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

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

公平调度器

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

调度器配置

容量调度器

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

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

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

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

容量调度器配置

在capacity-scheduler.xml配置yarn.scheduler.capacity.<queue-path>.<sub-property>

作业的队列放置

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

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

其他答案

2023-10-24 17:27:02

在YARN中,有三种常见的调度策略,分别是:

基于资源分配的调度策略:

yarn.scheduler.minimum-allocation-mb:表示每个任务的最小内存大小。

yarn.scheduler.maximum-allocation-mb:表示每个任务的最大内存大小。

yarn.scheduler.minimum-allocation-vcores:表示每个任务的最小CPU核数。

yarn.scheduler.maximum-allocation-vcores:表示每个任务的最大CPU核数。

基于任务优先级的调度策略:

yarn.scheduler.minimum-allocation-mb:表示每个任务的最小内存大小。

yarn.scheduler.maximum-allocation-mb:表示每个任务的最大内存大小。

yarn.scheduler.minimum-allocation-vcores:表示每个任务的最小CPU核数。

yarn.scheduler.maximum-allocation-vcores:表示每个任务的最大CPU核数。

基于资源分配和任务优先级的混合调度策略:

yarn.scheduler.minimum-allocation-mb:表示每个任务的最小内存大小。

yarn.scheduler.maximum-allocation-mb:表示每个任务的最大内存大小。

yarn.scheduler.minimum-allocation-vcores:表示每个任务的最小CPU核数。

yarn.scheduler.maximum-allocation-vcores:表示每个任务的最大CPU核数。

这些调度策略参数可以在YARN的配置文件中进行设置,以控制任务的选择和调度顺序。具体的配置方法可以参考YARN的官方文档或相关教程。

其他答案

2023-10-24 17:27:02

Yarn有三种调度策略配置参数,分别是FIFO、Capacity和Fair。FIFO是最简单的策略,按照作业提交的顺序进行调度。

Capacity策略根据集群资源的容量进行分配,可以为不同的队列设置不同的资源容量。

Fair策略根据作业的需求和历史资源使用情况进行动态调度,以实现公平共享资源的目标。这些策略可以根据集群的需求进行配置,以满足不同的调度需求。

知道问答相关问答

(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6