yarn的三种调度器

YARN详解(YARN架构设计、常用命令、三种调度器)     YARN架构设计也是主从架构,分为Resource Mananger(RM)和Node Manager(NM),其中RM主要负责应用管理和资源调度,NM主要负责容器和作业。一、YARN架构介绍YARN架构图如上图所示,详细介绍如下:ResourceManager(RM):负责对各NM上的资源进行统一管理和调度,将AM分配空闲的Container运行并监控其运行状态。对AM申请的资源请求分配... 阅读详情

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

在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairS cheduler。

FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。

FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,这两个调度器都允许大任务和小任务在提交的同时获得一定的系统资源。

下面“Yarn调度器对比图”展示了这几个调度器的区别,从图中可以看出,在FIFO 调度器中,小任务会被大任务阻塞。在这里插入图片描述
而对于Capacity调度器,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。在这里插入图片描述
在Fair调度器中,我们不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源。如图所示,当第一个大job提交时,只有这一个job在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。
需要注意的是,在图Fair调度器中,从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。

Capacity Scheduler(容器调度器)的配置
Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。
在这里插入图片描述
通过上面那幅图,我们已经知道一个job可能使用不了整个队列的资源。然而如果这个队列中运行多个job,如果这个队列的资源够用,那么就分配给这些job,如果这个队列的资源不够用了呢?其实Capacity调度器仍可能分配额外的资源给这个队列,这就是“弹性队列”(queue elasticity)的概念。

在正常的操作中,Capacity调度器不会强制释放Container,当一个队列资源不够用时,这个队列只能获得其它队列释放后的Container资源。当然,我们可以为队列设置一个最大资源使用量,以免这个队列过多的占用空闲资源,导致其它队列无法使用这些空闲资源,这就是”弹性队列”需要权衡的地方。
容器调度的配置
假设我们有如下层次的队列:

root
├── prod
└── dev
├── eng
└── science
下面是一个简单的Capacity调度器的配置文件,文件名为capacity-scheduler.xml。在这个配置中,在root队列下面定义了两个子队列prod和dev,分别占40%和60%的容量。需要注意,一个队列的配置是通过属性yarn.sheduler.capacity..指定的,代表的是队列的继承树,如root.prod队列,一般指capacity和maximum-capacity。
在这里插入图片描述
我们可以看到,dev队列又被分成了eng和science两个相同容量的子队列。dev的maximum-capacity属性被设置成了75%,所以即使prod队列完全空闲dev也不会占用全部集群资源,也就是说,prod队列仍有25%的可用资源用来应急。我们注意到,eng和science两个队列没有设置maximum-capacity属性,也就是说eng或science队列中的job可能会用到整个dev队列的所有资源(最多为集群的75%)。而类似的,prod由于没有设置maximum-capacity属性,它有可能会占用集群全部资源。

Capacity容器除了可以配置队列及其容量外,我们还可以配置一个用户或应用可以分配的最大资源数量、可以同时运行多少应用、队列的ACL认证等。

队列的设置
关于队列的设置,这取决于我们具体的应用。比如,在MapReduce中,我们可以通过mapreduce.job.queuename属性指定要用的队列。如果队列不存在,我们在提交任务时就会收到错误。如果我们没有定义任何队列,所有的应用将会放在一个default队列中。

注意:对于Capacity调度器,我们的队列名必须是队列树中的最后一部分,如果我们使用队列树则不会被识别。比如,在上面配置中,我们使用prod和eng作为队列名是可以的,但是如果我们用root.dev.eng或者dev.eng是无效的。

总结:
Capacity
Scheduler容量调度器的特性:
1.可以控制每个队列的最高限制和最低保证,最高限制是防止某个队列占用资源过多导致其他队列资源紧张
2.可以针对用户限制最高使用资源,防止用户滥用或频繁使用使用资源
3.每一个队列也是按照先进先出的原则调度
4.如果A队列资源紧张,B队列资源剩余,那么可以暂时把B队列的资源共享给A队列使用,一旦B队列有任务提交,那么共享给A队列的资源会归还,这种特性叫弹性队列
容量调度器的配置:
在capacity-scheduler.xml配置yarn.scheduler.capacity..

FairScheduler公平调度器的特性:
即实现了队列间的公平调度,也实现了队列内作业间的公平调度
假设只有A队列的job1正在运行中,则job1占用的所有集群资源,如果同一队列A的job2启动了那么会将job1的一半资源分配给job2,如果另一个队列B的job3也要启动,则队列A会分出一半的资源给队列B的job3。

FIFOSchedule(默认):
FIFOSchedule 的局限性,多个用户需要共享集群资源,集群资源以队列为单位划分。
即以应用提交的顺序排成一个队列,这是以一个先进先出的队列,在进行资源分配的时候,先给队列最前面的应用进行分配资源,待最前面的应用满足需求后在分配给下一个,以此类推。

yarn三种调度器原理 概述 yarn调度器 阅读详情

相关推荐

【强化学习】11 —— Double DQN算法与Dueling DQN算法

可以看到由于数据点的分布,使得拟合出的价值函数无法与真实的价值函数吻合,甚至在部分区域产生了明显的偏差。Dueling DQN 是 DQN 另一种的改进算法,它在传统 DQN 的基础上只进行了微小的改动,但却能大幅提升 DQN 的表现。这样,即使其中一套神经网络的某个动作存在比较严重的过高估计问题,由于另一套神经网络的存在,这个动作最终使用的值不会存在很大的过高估计问题。.在同一个状态下,所有动作的优势值之和为 0,因为所有动作的动作价值的期望就是这个状态的状态价值。环境的状态包括倒立摆角度的正弦值。

sinat_52032317的博客 1万+

Yarn的三个调度器和调度算法

一、Yarn的三种调度器 (1)先进先出调度器(FIFO) (2)容量调度器(默认)(Capacity Scheduler) (3)公平调度器(Fair Scheduler) 二、具体细节和调度算法 1、先进先出调度器(FIFO)

nuobing1314的博客 2987

Loupe Browser实战指南:解锁10xGenomics单细胞数据的可视化奥秘

本文提供了Loupe Browser的实战指南,帮助用户无需编程即可探索和可视化10xGenomics单细胞数据。文章详细介绍了从数据导入、界面导航到细胞亚群鉴定、差异基因分析的核心操作流程,并分享了高级技巧与避坑指南,是快速上手这一强大可视化工具的必备参考。

weixin_29313423的博客 206

YARN的三种调度器

理想情况下,我们应用对yarn资源的请求应该立刻被满足,但是实际上,资源有限。特别是很忙的集群。 调度本身就是一大难题,很难找到完美的解决方案,所以yarn提供了三种调度器 1.FIFO Scheduler FIFO = first in first out 先进先出 (队列) 这种调度把应用提交按顺序排成一个队列,先进先出的队列,在进行资源分配的时候,先给队列中最头部的应用分配资源,等到应用满足了,再给下一个分配,以此类推。 问题:大的应用可能会占用所有的资源,造成阻塞,不适合集群 2

weixin_49539546的博客 4087

联邦学习模型投毒研究进展

在联邦学习中,多个设备(如移动设备、IoT设备等)本地训练模型,然后将更新的模型参数上传到服务器进行聚合。

2401_82375734的博客 1265

Altium Designer应用技巧1: 功能模块的复用方法

Altium Designer应用技巧1: 功能模块的复用方法      我们在使用Altium Designer进行电路图设计时,常会遇到功能模块的复用问题,例如我们经常需要将12V以DC-DC的方式转换成5V,这在很多线路板上都会应用到。现在我们普通的做法是,每个板子都重新绘制一遍,像这样DC-DC的电路,很浪费时间。那么如何采用提高工作效率呢?我们可以采取Altium Desi

snmplink的博客 1万+

一文搞清yarn三种调度器

3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。DRF:Yarn默认只考虑内存资源,该策略对不同应用不同资源(CPU和内存)进行一个不同比例的限制,因为每个应用程序需求量不一样。容量调度器优先选择资源使用率最低的队列,而公平调度器优先选择资源缺额比较大的队列。

mn_kw的博客 2234

SAP_PP模块跑完 MRP,MD04 里却看不到“计划订单”?排查这 3 个最容易被忽略的主数据参数

MRP 是 SAP 逻辑最严密的模块之一,它绝不会随机罢工。当 MD04 里看不到计划订单时,请不要怀疑系统的计算能力。99% 的情况,都是因为我们给系统下达了矛盾的指令:一边告诉它“我有需求”,一边却通过主数据告诉它“不要计划”、“不要触发”或者“我是冻结的”。掌握这 3 个排查点,你就能在 5 分钟内解决大部分“MRP 失灵”的悬案,成为用户眼中的“系统神医”。

我小时候很黑的博客 593

YARN的调度队列 —— Hadoop权威指南6

真实场景中,总会出现这样的情况:新提交的YARN应用需要等待一段时间,才能获得所需的资源。 不能立即获得资源的应用,总不能直接拒绝,需要有个地方去存储这些应用 —— 使用队列 同时,队列中的应用如何为其分配资源:是先到先得?还是优先执行资源需求较小的应用? —— 需要有特定的策略为应用分配资源 而YARN的调度器(scheduler)的工作就是根据既定策略为应用分配资源 1. YARN中的三种调度器概述 1.1 FIFO调度器 FIFO调度器,顾名思义:将应用放置在一个队列中,按照到来的先后顺序(先进.

lucyLee的博客 1720

微信终于支持“多设备同时在线”?我用 NAS + Docker 搭了一个云端微信系统,多端共享24小时在线

通过Docker 容器,将微信运行在云端并通过浏览器访问,实现多设备共享同一微信会话 📱。本文详细介绍完整部署流程、docker-compose 配置及资源控制方案,让微信变成“可访问的云桌面应用” ✨

XiaoqiangClub的博客 870

基于QT与STM32的电力参数采集系统(华为云IOT)(211)

本项目构建一款集多功能于一体的电力参数采集系统,该系统以高性能、低功耗的STM32F103RCT6微控制器为核心,集成多种传感器与通信模块,实现对电力设施如电压、电流、功率、电能及环境温度等关键参数的实时精确采集,并通过GPS模块获取设备地理位置信息,满足了电力设备状态全面监控的需求。

2902

yarn命令_yarn的三种调度器

Scheduler即调度器,根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

HYSliuliuliu的博客 9141

从零构建爬虫抓取故宫数字文物库:Python最新实战技术详解

熟悉了动态内容加载的网页结构解析技巧。掌握了 Playwright + BeautifulSoup 的组合用法。实现了从网页→JSON→详情→图像的完整数据闭环。掌握了结构化保存与可视化分析能力。

2201_76125261的博客 1307

Yarn四、Yarn三种调度器

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

weixin_39182877的博客 5621

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

yarn三种调度器

在理想状态下,我们对yarn的资源请求,应该是立即得到相应,但是实际情况往往资源是有限的,如果集群很繁忙的话,一个应用的资源请求需要等待一段时间才能得到资源。为此yarn提供了三种调度器供我们选择 1 FIFO Scheduler FIFO Scheduler 把应用按照提交的顺序拍成一个队列,上图是一个先进先出的队列,但是他并不适合共享集群,上图中job1在0点提交任务,资源使用率为100%,...

阿顾的博客 2221

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Yarn三种调度器详解及默认调度器说明

摘要:本文深入解析Hadoop Yarn的三种核心调度器:FIFO调度器(简单但效率低)、容量调度器(默认配置,支持多队列资源隔离)和公平调度器(动态资源分配)。详细介绍了各调度器的工作原理、优缺点及适用场景,重点演示了如何修改默认调度器配置,包括yarn-site.xml参数设置和fair-scheduler.xml队列配置。通过对比表格清晰展示三者的区别,为企业级集群调度策略选择提供实用指导,并强调生产环境配置注意事项,帮助开发者优化Hadoop集群资源管理效率。(149字)

hao521yun的博客 646

YARN三种调度器和配置策略

FIFO调度器容量调度器公平调度器

ThisIsNobody的博客 7315

简单介绍YARN三种调度器

为什么会有YARN调度器,在理想情况中,YARN应用发出的资源请求应该立刻给予满足,但是现实中资源时有限的,在一个繁忙的集群上,一个应用经常需要等待才能够得到所需要的资源。YARN调度器的工作就是根据已定策略为其应用分配资源。调度通常是一个难题,并且没有一个所谓的最好的策略。接下来,讲解YARN中的三个调度器。 YARN中有三种调度器:FIFO调度器、容量调度器、公平调度器 FIFO调度器 ...

我是一名程序猿 1015

Yarn三种调度器

A1 总述 1. FIFO Scheduler 2. Capacity Scheduler 3. Fair Scheduler A2 具体 1. FIFO 名字:队列调度器 特点:先进先出,提交的job一个一个完成 2. Capacity(默认) 容器调度器 FIFO的多队列版本 3. Fair 公平调度器 A5 相关 5.1Yarn 调度器Scheduler详解(很棒的一篇) ...

@coredao 235

Yarn三种调度器组件 FIFO、Capacity、Fair Scheduler

调度器是YARN的一种可插拔的组件,可根据不同的需求选择调度器(Scheduler)。调度器可以在yarn-default.xml中设置关于调度器的信息,并可以在ResourMananger的WebUI的界面左侧集群菜单中的调度选项中找到调度信息(图在文章最下面)。 FIFO调度器 FIFO调度是一种“先进先出”、“先来先服务”的调度,先来的工作队列先被拉取,不考虑作业的优先级和范围,也可以说...

Ahuuua的博客 1265
上一篇: hive的数据存储(元数据,表数据)和内部表,外部表,分区表的创建和区别作用
下一篇: hive之间的各种join和使用
Alwaysdazz
博客等级 码龄8年 24粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值