Hadoop -Yarn Scheduler调度器

Hadoop -Yarn Scheduler调度器


理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择

在Yarn中有三种调度器可以选择:FIFO SchedulerCapacity SchedulerFairScheduler

  • FIFO Scheduler

    先进先出,队列式,先提交的job优先获得资源,后提交的,后获得资源.这种调度方式很容易导致,大任务占用资源很长一段时间,二小任务一直在队列后面等候大任务资源的释放,资源利用率不高

在这里插入图片描述

FIFO Scheduler不需要配置


  • Capacity Scheduler

    按容量进行资源的切分,当提交大任务时,会提交到大容量资源队列,当提交小任务时,会提交到小任务队列,这样保证了小任务提交时,无需等待大任务的完成,直接就进入小任务队列进行执行.但这样又出现一个问题,当只有一个大任务时,无法100%利用资源,因为小任务队列的资源已经提前占好资源了,就容易出现占着茅坑不拉屎的情况
    在这里插入图片描述

配置
在这里插入图片描述
说明:root队列下面有两个队列,分别为prod(40%的容量,即使用40%的集群资源)和dev(60%的容量,最大的75% -> 说明即使prod队列空闲了,那么dev最多只能使用75%的集群资源。这样就可以保证prod中添加新的apps时马上可以使用25%的资源)。

除了队列的容量和层次,还可以指定单个用户或者应用被分配的资源大小、同时可以运行的app数量、队列的ACLs。

可以指定app要放在哪个队列中。如果不指定,app将会被放在名字是 default的队列中。

CapacityScheduler的队列名字必须是层次结构最后的名字,比如eng。不能是root.dev.eng或者dev.eng


  • Fair Scheduler

    公平调度器,yarn会动态为我们的任务分配内存,当提交大任务时,会直接给全部资源,此时如果来了任务,只需要等待大任务的小task完成释放container资源就可以执行了,小任务执行完,又将资源归还给大任务,让资源得到了充分的利用
    在这里插入图片描述

**示例1:**大的任务job1提交并执行,占用了集群的全部资源,开始执行。之后小的job2执行时,获得系统一半的资源,开始执行。因此每个job可以公平地使用系统的资源。当job2执行完毕,并且集群中没有其他的job加入时,job1又可以获得全部的资源继续执行。

注意:job2提交之后并不能马上就获取到集群一半的资源,因为job2必须等待job1释放containers。

在这里插入图片描述

示例2两个用户A和B。A提交job1时集群内没有正在运行的app,因此job1独占集群中的资源。用户B的job2提交时,job2在job1释放一半的containers之后,开始执行。job2还没执行完的时候,用户B提交了job3,job2释放它占用的一半containers之后,job3获得资源开始执行。
在这里插入图片描述

配置
在这里插入图片描述
使用FairScheduler需要修改yarn-size.xml文件,创建allocation file,列出存在的队列和各自的 weights and capacities

prod和dev的权重也可以设置成2和3。

dev下的两个sub-queue没有指定权重,则为1:1。

在设置权重时,需要考虑default queue和用户命名的queue的权重,这些没有在xml文件中指定,但是它们的权重都是1.

队列还可以被配置minimum maximum Resources以及可以运行的最大的apps的数量

FairScheduler支持preemption(抢占),当queue占用的资源大于它应得的,那么调度器可以杀掉queue对应的containers,将yarn.scheduler.fair.preemption设置成true即可。


原文链接
YARN中FIFO、Capacity以及Fari调度器的详细介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值