Yarn调度器和调度算法(FIFO、容量调度器 与 公平调度器)

Yarn调度器和调度算法

目前,Hadoop作业调度器主要有三种: FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。

Apache Hadoop-1.x默认调度器是FIFO;
Apache hadoop-2.7.2之后默认调度器是容量调度器Capacity Scheduler,也称计算能力调度器;
Apache hadoop-3.2.2默认调度器是公平调度器Fair Scheduler。

CDH 框架默认调度器是 Fair Scheduler。

如图为Apache hadoop-3.2.2默认调度器配置信息(yarn-site.xml):
在这里插入图片描述

一、先进先出调度器(FIFO)

FIFO调度器(First In First Out): 单队列,根据提交作业的先后顺序,先到先得。
在这里插入图片描述

优点: 简单易懂;
缺点: 不支持多队列,生产环境很少使用。

二、容量调度器(Capacity Scheduler)

Capacity Scheduler是Yahoo开发的多用户调度器。

1. 容量调度器特点

在这里插入图片描述

  1. 多队列 :每个队列可配置一定的资源量,每个队列内部采用FIFO调度策略
  2. 容量保证:管理员可为每个队列设置资源最低保证和资源使用上线;
  3. 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列;
  4. 多租户
    a. 支持多用户共享集群和多应用程序同时运行;
    b. 为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源进行限定。

2. 容量调度器资源分配算法

在这里插入图片描述

三、公平调度器(Fair Scheduler)

Fair Scheduler是Facebook开发的多用户调度器。

1. 公平调度器特点

在这里插入图片描述

与容量调度器相同点:

  1. 多队列 :每个队列可配置一定的资源量,每个队列内部采用FIFO调度策略
  2. 容量保证:管理员可为每个队列设置资源最低保证和资源使用上线;
  3. 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列;
  4. 多租户
    a. 支持多用户共享集群和多应用程序同时运行;
    b. 为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源进行限定。

与容量调度器不同点:

  1. 核心调度策略不同

容量调度器: 优先选择资源利用率低的队列;
公平调度器:优先选择对资源缺额比例大的。

  1. 每个队列可以单独设置资源分配方式

容量调度器:FIFO、DRF(内存+CPU);
公平调度器:FIFO、FAIR、DRF。

2. 公平调度器–缺额

在这里插入图片描述

3. 公平调度器队列资源分配方式

  1. FIFO策略

公平调度器每个队列资源分配策略若是选择FIFO,相当于容量调度器;

  1. Fair策略

在这里插入图片描述

  1. DRF策略

上述说的资源都是单一标准,例如只考虑内存(Yarn默认情况)。但很多时候我们资源有很多种,例如内存、CPU、网络带宽等,这样就很难衡量两个应用应该分配的资源比例。

所以在Yarn中,我们使用DRF来决定如何调度:

DRF(Dominant Resource Fairness)主导资源公平调度算法,是一种通用的多资源最大-最小公平分配策略(Max-Min Fairness Strategy),核心思想是在多环境下一个用户的资源分配应该由用户的主导份额资源决定。用户所有份额中的最大值称为该用户的主导份额,与主导份额相对应的资源称为主导资源

假设集群一共有100 CPU和10T 内存,而应用A需要(2 CPU, 300GB),应用B需要(6 CPU,100GB)。 则两个应用分别需要A(2%CPU, 3%内存)和B(6%CPU, 1%内存)的资源,这就意味着A是内存主导的, B是 CPU主导的。

4. 公平调度器资源分配算法

  1. 队列资源分配:
    在这里插入图片描述
  2. 作业资源分配:
    请添加图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值