当前位置:网站首页>YARN组织架构
YARN组织架构
2022-07-06 09:01:00 【棱镜7】
1. YARN 集群的架构和工作原理
YARN 的基本设计思想是将 MapReduce V1 中的 JobTracker 拆分为两个独立的服务:ResourceManager 和 ApplicationMaster。
- ResourceManager(负责整个系统的资源管理和分配): RM 是一个全局的资源管理器,负责整个系统的资源管理和分配,它主要由两个部分组成:调度器(Scheduler)和应用程序管理器(Application Manager)。
调度器根据容量、队列等限制条件,将系统中的资源分配给正在运行的应用程序,在保证容量、公平性和服务等级的前提下,优化集群资源利用率,让所有的资源都被充分利用
应用程序管理器负责管理整个系统中的所有的应用程序,包括应用程序的提交、与调度器协商资源以启动 ApplicationMaster、监控ApplicationMaster 运行状态并在失败时重启它
- ApplicationMaster (负责单个应用程序的的管理):用户提交的一个应用程序会对应于一个ApplicationMaster,它的主要功能有:
- 与 RM 调度器协商以获得资源,资源以 Container 表示。
- 将得到的任务进一步分配给内部的任务。
- 与 NM 通信以启动/停止任务。
- 监控所有的内部任务状态,并在任务运行失败的时候重新为任务申请资源以重启任务
- NodeManager: NodeManager 是每个节点上的资源和任务管理器,一方面,它会定期地向 RM 汇报本节点上的资源使用情况和各个 Container 的运行状态;另一方面,他接收并处理来自 AM 的 Container 启动和停止请求。
- Container: Container 是 YARN 中的资源抽象,封装了各种资源。一个应用程序会分配一个 Container,这个应用程序只能使用这个 Container 中描述的资源。Container 是一个动态资源的划分单位,更能充分利用资源
2. YARN的任务提交流程
当向YARN提交一个应用程序之后,YARN将分两个阶段运行程序:一是启动ApplicationMaster;二是由ApplicationMaster创建应用程序,然后为他申请资源,监控程序的运行,直至结束。
具体步骤:
(1)用户向YARN提交一个应用程序,并指定ApploicationMaster程序;
(2)ResourceManager为这个应用程序分配一个Container,并与对应的NodeManager通讯,在这个Container中启动ApplicationMaster。
(3)ApplicationMaster向ResourceManager注册,然后拆分任务分配给内部,为各个拆分的任务申请资源,然后监控这些任务的运行,知道结束。
(4)ApplicationMaster采用轮询的方式向RM申请资源。
(5)AM申请到资源后,与对应的NodeManager通讯,以启动任务。
(6)任务启动后,各个任务会向AM报告自己的状态和进度,以便任务失败时,AM可以重新申请资源重启任务。
(7)任务完成后,AM向RM注销并关闭自己。
3. YARN 的资源调度三种模型
在 Yarn 中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler。
Apache 版本的 hadoop 默认使用的是 Capacity Scheduler 调度方式。CDH 版本的默认使用的是 Fair Scheduler 调度方式
FIFO Scheduler(先来先服务):
FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。
FIFO Scheduler 是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞,比如有个大任务在执行,占用了全部的资源,再提交一个小任务,则此小任务会一直被阻塞。
Capacity Scheduler(容量/能力调度器):
对于 Capacity 调度器,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用 FIFO 调度器时的时间。
Fair Scheduler(公平调度器):
在 Fair 调度器中,我们不需要预先占用一定的系统资源,Fair 调度器会为所有运行的 job 动态的调整系统资源。
比如:当第一个大 job 提交时,只有这一个 job 在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair 调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。
需要注意的是,在 Fair 调度器中,从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的 Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。最终的效果就是 Fair调度器即得到了高的资源利用率又能保证小任务及时完成
边栏推荐
- Persistence practice of redis (Linux version)
- [text generation] recommended in the collection of papers - Stanford researchers introduce time control methods to make long text generation more smooth
- [three storage methods of graph] just use adjacency matrix to go out
- Redis之持久化实操(Linux版)
- Mathematical modeling 2004b question (transmission problem)
- [oc]- < getting started with UI> -- learning common controls
- QML control type: Popup
- Kratos战神微服务框架(三)
- Publish and subscribe to redis
- Intel distiller Toolkit - Quantitative implementation 1
猜你喜欢
Kratos ares microservice framework (II)
A convolution substitution of attention mechanism
基于B/S的网上零食销售系统的设计与实现(附:源码 论文 Sql文件)
Advanced Computer Network Review(4)——Congestion Control of MPTCP
Advanced Computer Network Review(3)——BBR
Redis分布式锁实现Redisson 15问
Reids之缓存预热、雪崩、穿透
LeetCode41——First Missing Positive——hashing in place & swap
I-BERT
Publish and subscribe to redis
随机推荐
Selenium+pytest automated test framework practice (Part 2)
英雄联盟轮播图手动轮播
Withdrawal of wechat applet (enterprise payment to change)
Design and implementation of online shopping system based on Web (attached: source code paper SQL file)
LeetCode41——First Missing Positive——hashing in place & swap
Improved deep embedded clustering with local structure preservation (Idec)
Blue Bridge Cup_ Single chip microcomputer_ PWM output
【文本生成】论文合集推荐丨 斯坦福研究者引入时间控制方法 长文本生成更流畅
Intel distiller Toolkit - Quantitative implementation 1
[daily question] Porter (DFS / DP)
The order of include header files and the difference between double quotation marks "and angle brackets < >
xargs命令的基本用法
Pytest之收集用例规则与运行指定用例
[shell script] use menu commands to build scripts for creating folders in the cluster
The five basic data structures of redis are in-depth and application scenarios
Global and Chinese market of appointment reminder software 2022-2028: Research Report on technology, participants, trends, market size and share
Redis之哨兵模式
Opencv+dlib realizes "matching" glasses for Mona Lisa
数据建模有哪些模型
Redis cluster