网站首页 > 博客文章 正文
YARN (Yet Another Resource Negotiator,另一种资源协调者)
YARN是Hadoop 2.0 中新增的资源管理调度框架,就是将MR v1中的JobTracker的职责进行拆分,将资源管理和任务调度监控拆分成独立的进程:一个全局的资源管理和一个每个作业的管理(ApplicationMaster)。ResourceManager和NodeManager提供了计算资源的分配和管理,而ApplicationMaster则完成应用程序的运行。
YARN体系架构
YARN 体系架构中包含了3个组件:
- ResourceManager
- ApplicationMaster
- NodeManager
下图中,Container 是资源申请的单位和任务运行的容器。
ResourceManager(RM)是一个全局的资源管理器,负责整个系统的资源管理和分配,主要包括2个组件:
- 调度器(Scheduler)-负责资源管理和分配;
- 应用管理器(Applications Manager)-负责系统中所有应用程序的管理工作,主要包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等等。
ApplicationMaster的主要功能:单个作业的资源管理和任务监控。
(1)当用户作业提交时,ApplicationMaster和ResourceManager协商获取资源,ResourceManager会以容器的形式为ApplicationMaster分配资源;
(2)把获得的资源进一步分配给内部的各个任务(Map任务或Reduce任务),实现资源的二次分配;
(3)与NodeManager保持交互通信,进行应用程序的启动、运行、监控和停止,监控申请到的资源的使用情况,对所有任务的执行进度和状态进行监控,并在任务发生失败时执行恢复;
(4)定时向ResourceManager 发生心跳消息,报告资源的使用情况和应用的进度信息;
(5)在作业完成时,ApplicationMaster向ResourceManager 注销容器,执行周期完成。
NodeManager:单个节点的资源管理和监控。
NodeManager 是驻留在一个YARN集群中的每个节点上的代理,主负责容器声明周期管理,监控每个容器的资源(CPU/MEM等)的使用情况,跟踪节点监控健康状况,并以心跳的方式与ResourceManager 保持通信。
NodeManager 主要负责管理抽象的容器,只处理与容器相关的事情,而不具体负责每个任务(Map任务或Reduce任务)自身状态的管理,因为这些管理工作是由ApplicationMaster 完成的。
YARN组件和Hadoop集群其他组件的部署关系
在集群部署方面,YARN各个组件和Hadoop 集群中的其他组件是进行统一部署的。
如下图所示:
- YARN的ResourceManager 组件和HDFS 的名称节点(NameNode)部署在一个节点上。
- YARN的ApplicationMaster和NodeManager组件是和HDFS中的数据节点(DataNode)部署在一个节点上。
- YARN中的容器(Container),代表了CPU、Mem、网络等资源,也是和HDFS中的数据节点在一起。
YARN 工作流程
在YARN框架中,执行一个MapReduce应用程序时,分为2个阶段运行该应用程序:
第一个阶段是启动ApplicationMaster;
第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行完成。
从提交到完成,具体经历了如下几个步骤:
1. 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
2. ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。
3. ApplicationMaster首先向ResourceManager注册,这样用户就可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。
4. ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
5. 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。
6. NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
7. 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
8. 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。
YARN 统一资源管理调度框架
Hadoop 集群是基础,其中的HDFS提供文件存储,YARN进行资源调度管理,为上层的各种计算框架提供统一的资源管理调度服务。
可以运行在YARN 之上的计算框架,包括:
- 离线批处理框架 MapReduce;
- 内存计算框架Spark;
- 流计算框架 Storm和Flink;
- DAG计算框架 Tez;
和YARN一样提供类似功能的资源管理和调度框架,还有Mesos等。
欢迎关注,一起沟通交流大数据相关的学习心得和项目经验。谢谢!
猜你喜欢
- 2024-10-14 国庆期间别偷懒,大数据平台只差YARN了
- 2024-10-14 为什么我们从Yarn切换到pnpm(yarn设置淘宝镜像)
- 2024-10-14 flink的yarn模式部署(flink的三种部署方案)
- 2024-10-14 yarn的安装和使用(yarn安装教程)
- 2024-10-14 yarn 的安装和使用(yarn安装教程)
- 2024-10-14 操作学习-Spark on Yarn(spark on yarn执行流程)
- 2024-10-14 全面解析:Hadoop基础——YARN(hadoop yarn工作原理)
- 2024-10-14 Node简史及好书推荐(nodejs相关书籍)
- 2024-10-14 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x_0147
- 2024-10-14 大数据系列文章之Yarn组件及其执行流程
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)