hadoop2/MRv2 YARN整体了解 ResourceManager

Hadoop MRv1和MRv2的区别 Hadoop1.0采用的是MRv1版本的MapReduce编程模型 对于MRv1 运行时环境:JobTracker和TaskTracker 编程模型:MapReduce 数据处理引擎:Map任务和Reduce任务 这一版本的瓶颈和缺陷: 1、JobTracker既负责资源管理又负责任务调度,如果集群繁忙,JobTracker本身就会成为可扩展性的瓶颈,大大制约计算能力。 2、在这一版本中,Task... 阅读详情

1.ResourceManager是什么?能干什么?分配的资源到底是什么?

ResourceManager相当于整个系统的master,主要功能是启动application的ApplicationMaster和分配系统资源。ResourceManager分配资源,具体分配的什么资源包括:内存、IO、网络。不过目前只是内存。

2.ResourceManager的核心代码是什么?

ResourceManager的核心代码在java包 org.apache.hadoop.yarn.server.resourcemanager中的ResourceManager类

3.ResourceManager类中,主要涉及到三种 对象?

事件处理器,RPC服务和普通服务,其中事件处理器实现EventHandler接口,并被注册到统一的事件调度器AsyncDispatcher 中,由该调度器进行统一管理和调度

4.RPC服务主要功能是什么?

RPC服务主要功能是创建一个RPC server,供远程客户端调用提供的服务(接口)。实现时,会继承AbstractService抽象类,实现某个RPC协议,并调用YarnRPC中 的getServer接口创建一个server以供客户端RPC调用。

5.四种actor是指什么?

RMApp:application的状态信息,
由org.apache.hadoop.yarn.server.resourcemanager.rmapp/RMAppImpl.java实现。

RMAppAttempt:

运行application的一次尝试(每个application从1开始逐步尝 试运行,如果失败,则继续尝试运行,直到成功或者到达某个尝试上限,如果成果,则该application运行成功。一个RMApp可能对一个多个 RMAppAttempt),由 org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt/
RMAppAttemptImpl.java实现

RMContainer:

各个container的状态信息,由org.apache.hadoop.yarn.server.resourcemanager.rmcontainer/
RMContainerImpl.java实现。

RMNode:

YARN集群中每个节点的状态信息,由org.apache.hadoop.yarn.server.resourcemanager.rmnode/RMNodeImpl.javava

6.PRC服务都是什么?

ClientRMService:实现ClientRMProtocal协议,负责与client交互,接收来自client端的请求并作出响应。
ApplicationMasterService:实现了AMRMProtocol通信协议,负责与ApplicationMaster交互,接收来自ApplicationMaster的请求并作出相应。
ResourceTrackerService:实现了ResourceTracker协议,主要负责管理各个NodeManager,如新NodeManager注册,死NodeManager的剔除,会调用NMLivelinessMonitor的一些接口。
AdminService:实现RMAdminProtocol协议,主要负责整个系统权限管理,如哪些client可以修改系统中队列名称,给某些队列增加资源等。

ResourceManager

作为资源的协调者有两个主要的组件:Scheduler和ApplicationsManager(AsM)。

Scheduler

负责分配最少但满足application运行所需的资源量给Application。Scheduler只是基于资源的使用情况进行调度,并不负责监视/跟踪application的状态,当然也不会处理失败的task。RM使用resource container概念来管理集群的资源,resource container是资源的抽象,每个container包括一定的内存、IO、网络等资源,不过目前的实现只包括内存一种资源。

ApplicationsManager

负责处理client提交的job以及协商第一个container以供applicationMaster运行,并且在applicationMaster失败的时候会重新启动applicationMaster。

下面阐述RM具体完成的一些功能。

1.资源调度:

Scheduler从所有运行着的application收到资源请求后构建一个全局的资源分配计划,然后根据application特殊的限制以及全局的一些限制条件分配资源。

2.资源监视:

Scheduler会周期性的接收来自NM的资源使用率的监控信息,另外applicationMaster可以从Scheduler得到属于它的已完成的container的状态信息。

3.Application提交:

client向AsM获得一个applicationIDclient将application定义以及需要的jar包
client将application定义以及需要的jar包文件等上传到hdfs的指定目录,由yarn-site.xml的yarn.app.mapreduce.am.staging-dir指定
client构造资源请求的对象以及application的提交上下文发送给AsM
AsM接收application的提交上下文
AsM根据application的信息向Scheduler协商一个Container供applicationMaster运行,然后启动applicationMaster
向该container所属的NM发送launchContainer信息启动该container,也即启动applicationMaster、AsM向client提供运行着的AM的状态信息。

4.AM的生命周期:

AsM负责系统中所有AM的生命周期的管理。AsM负责AM的启动,当AM启动后,AM会周期性的向AsM发送heartbeat,默认是1s,AsM据此了解AM的存活情况,并且在AM失败时负责重启AM,若是一定时间过后(默认10分钟)没有收到AM的heartbeat,AsM就认为该AM失败了。
关于ResourceManager的可用性目前还没有很好的实现,不过Cloudera公司的CDH4.4以后的版本实现了一个简单的高可用性,使用了Hadoop-common项目中HA部分的代码,采用了类似hdfs namenode高可用性的设计,给RM引入了active和standby状态,不过没有与journalnode相对应的角色,只是由zookeeper来负责维护RM的状态,这样的设计只是一个最简单的方案,避免了手动重启RM,离真正的生产可用还有一段距离。

YARN/MRv2 ResourceManager代码结构分析

ResourceManager相当于整个系统的master,主要功能是启动application的ApplicationMaster和分配系统资源。

ResourceManager的核心代码在java包 org.apache.hadoop.yarn.server.resourcemanager中的ResourceManager类中,主要涉及到三种 对象:事件处理器,RPC服务和普通服务,其中事件处理器实现EventHandler接口,并被注册到统一的事件调度器AsyncDispatcher 中,由该调度器进行统一管理和调度:

private EventHandler<SchedulerEvent>schedulerDispatcher; //实际上是AsyncDispatcher

this.rmDispatcher.register(RMAppEventType.class,
new ApplicationEventDispatcher(this.rmContext));

Register函数有两个参数,第一个是事件类型,另一个是事件处理器。
每种事件对应一种事件处理器,一旦该事件发生,事件调度器会直接交由其对应的事件处理器处理,而事件处理器实际上是一个状态机,事件会使一个对象从一种状态变为另一种状态,并触发相应的行为;

RPC服务主要功能是创建一个RPC server,供远程客户端调用提供的服务(接口)。实现时,会继承AbstractService抽象类,实现某个RPC协议,并调用YarnRPC中 的getServer接口创建一个server以供客户端RPC调用。主要涉及四个RPC服务,分别是 ApplicationMasterService(实现AMRMProtocol协议),ResourceTrackerService(实现 ResourceTracker协议),ClientRMService(实现ClientRMProtocol协议)和AdminService(实现 RMAdminProtocol服务)

普通服务继承AbstractService抽象类,一般为一个后台线程或者普通对象。RPC服务和普通服务会被组装到组合服务对象CompositeService中,以便统一进行管理(启动、停止等)。
这里写图片描述

【四种actor】

四个概念,每个代表一个actor,对应一个状态机。
**RMApp:**application的状态信息,由org.apache.hadoop.yarn.server.resourcemanager.rmapp/RMAppImpl.java实现。

RMAppAttempt:运行application的一次尝试(每个application从1开始逐步尝 试运行,如果失败,则继续尝试运行,直到成功或者到达某个尝试上限,如果成果,则该application运行成功。一个RMApp可能对一个多个 RMAppAttempt),由org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt/
RMAppAttemptImpl.java实现
RMContainer:各个container的状态信息,由org.apache.hadoop.yarn.server.resourcemanager.rmcontainer/RMContainerImpl.java实现。

**RMNode:**YARN集群中每个节点的状态信息,由org.apache.hadoop.yarn.server.resourcemanager.rmnode/RMNodeImpl.java

PRC服务

ClientRMService:实现ClientRMProtocal协议,负责与client交互,接收来自client端的请求并作出响应。
ApplicationMasterService:实现了AMRMProtocol通信协议,负责与ApplicationMaster交互,接收来自ApplicationMaster的请求并作出相应。
ResourceTrackerService:实现了ResourceTracker协议,主要负责管理各个NodeManager,如新NodeManager注册,死NodeManager的剔除,会调用NMLivelinessMonitor的一些接口。
AdminService:实现RMAdminProtocol协议,主要负责整个系统权限管理,如哪些client可以修改系统中队列名称,给某些队列增加资源等。

其他类

ApplicationMasterLauncher:创建ApplicationMaster

NMLivelinessMonitor:监控各个Nodemanager是否存活,默认情况下,如果某个NodeManage在10min内卫汇报心跳,则认为该节点出现故障。

**RMAppManager:**application管理者,client端提交的作业会最终提交给该类。

ResourceScheduler:非常核心的组件,application调度器,当某个节点出现空闲资源 使,采用某种策略从application队列中选择某个application使用这些空闲资源。当前有两种调度器: FIFO(First In First Out,默认调度器)和CapacityScheduelr(与Hadoop MapReduce中的Capacity Scheduler思想相同)。

**ApplicationACLsManager:**Application权限管理,即:对于某个application,哪些用户可以查看运行状态,哪些可以修改运行时属性,如优先级等。
**NodesListManager:**node列表管理,可以动态往集群中添加节点或者减少节点。
代码整体划分】
下图是整个ResourceManager相关代码的java package注释:
这里写图片描述

Hadoop_YARN资源管理系统源码解析 目录 一、YARN产生的背景(MRv1的局限性) 二、YARN源代码结构 三、YARN基本架构 四、YARN各模块详细分析 五、MRAppMaster-MapReduce On YARN实现 六、YarnChild-MR引擎启动入口 七、总结   一、YARN产生的背景(MRv1的局限性) YARN 是在 MRv1 基础上演化而来的,它克服了 MRv1 中的各种局限性。在正式介... 阅读详情

相关推荐

Yarn框架和工作流程简介

大数据现在越来越火,各种计算框架不断出现,比如内存计算框架(Spark)、流式计算框架(Storm)、迭代式计算框架(iMapReduce)等新型计算框架的出现,经典MR计算框架(MRv1)的局限性日益突出。比如拓展性,不支持部分计算框架,即使支持,操作起来也很复杂,还有资源利用率比较低等等问题。 2010年雅虎团队设计出也新的框架—-YARN(MRv2)。全名Yet Another Resource Negotiator.一个多种计算框架通用的资源调度体系,为不同的并行化...

METON的博客 2736

resourceManager介绍

resourceManager介绍 ResourceManager (RM)是一个仲裁整个集群可用资源的主节点,帮助YARN系统管理其上的分布式应用。它同NodeManagers(NMs) 和ApplicationMasters(AMs)一起工作。 1、NodeManagers 从ResourceManager获取指令并管理本节点的可用资源 2、ApplicationMasters 的职责是从ResourceManager谈判资源,并为NodeManagers启动容器。 Resource Manager

weixin_43400807的博客 8952

9、YARN状态管理与从MRv1迁移到MRv2的全面解析

本文深入解析了YARN的状态管理机制,包括NodeManager在应用程序、容器和本地化资源方面的职责与状态转换流程,并通过mermaid流程图直观展示。同时,文章详细对比了Hadoop中MapReduce框架从MRv1到MRv2的架构变化,并提供了从MRv1迁移到MRv2的具体配置步骤。通过日志分析,读者可以更好地理解YARN中节点、应用程序和容器的状态转换过程,从而更有效地管理和优化Hadoop集群。

t8u9v0w1x的博客 67

Hadoop集群配置相关服务器,时间同步

一、配置历史服务器 历史这两个字就说明了,就是为了查看程序的历史运行情况,所以需要配置历史服务器。 1.配置mapred-site.xml vim mapred-site.xml 添加内容如下: <!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>vagrant1:10020</value> </p

阿涛在Coding 921

想在瑞芯微RK3588上跑视频分类模型?避开3D卷积这个坑,试试这几种NPU友好的方案

本文探讨了在瑞芯微RK3588上部署视频分类模型时如何避开3D卷积的性能陷阱,提供了三种NPU友好的替代方案:MobileNetV2+GRU组合、Temporal Shift Module(TSM)和帧级池化。这些方案在保持较高准确率的同时,充分利用RKNPU的硬件加速能力,显著提升推理效率。文章还分享了从模型转换到部署优化的完整流程和实战经验。

weixin_28724319的博客 418

InsightFace实战:如何在树莓派上部署轻量级人脸识别系统(附完整代码)

本文详细介绍了如何在树莓派上部署基于InsightFace框架的轻量级人脸识别系统。通过硬件选型、环境配置、模型优化(如MobileFaceNet)及完整代码实战,指导开发者构建本地化、低功耗的智能应用,如智能门铃,并提供了性能调优与系统服务化的进阶技巧。

weixin_29043895的博客 352

Hadoop2.7实战v1.0之YARN HA

YARN HA实战v1.0 当前环境:hadoop+zookeeper(namenode,resourcemanager HA) ...

crazy_stone0002的博客 283

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

Hadoop2.x ResourceManager启动之服务启动

RM是个综合服务类,内部包含了多个服务,所有的服务被放在列表中,通过循环逐个启动,其他服务的列表如下:

海盗的小菜园 4898

缺陷检测-金属表面缺陷检测

1介绍 缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和

huneng1991的专栏 5251

一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

本文翻译、总结自朱俊伟的线上报告,主要讲了如何用机器学习生成图片。 来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial In...

gdymind的博客 6万+

【YARN】详解 YARN 中的 ResourceManager

ClientRMService 本质是 RPC Server(实现 ApplicationClientProtocol),给客户端提供 RPC 服务。ClientRMService 中保留了 RM 上下文对象 RMContext,中央异步调度器(AsyncDispatcher)通过 RMContext 来获取节点列表、队列组织和应用列表等信息来响应客户端请求。

Data · Model · Agent · Repeat 3236

Redis+Unity 数据库搭建

游戏中需要存放排行榜等数据,而且是实时存放,所以就涉及到数据库的问题。这里找服务器大神了解到可以用Redis来做存储,免费的效率极高。

chaixinke的专栏 879

深入MapReduce——从MRv1到Yarn

深入MapReduce——从MRv1到Yarn

从知识输入到知识输出 2560

DiffusionDrive实战:如何用截断扩散模型3个月搞定自动驾驶轨迹规划(附代码)

本文详细介绍了如何利用DiffusionDrive截断扩散模型,在三个月内快速构建端到端的自动驾驶轨迹预测系统。内容涵盖从环境搭建、数据处理、模型架构解析到训练调参和推理优化的完整实战流程,并提供了关键代码示例,旨在帮助开发者高效实现高质量的自动驾驶轨迹规划。

weixin_35578748的博客 147

以阿克曼转向车为例对URDF和XACRO文件进行解读

   最近我在古月学院购买了在Gazebo中实现阿克曼转向车的仿真课程,课程资料的阿克曼小车的XACRO文件在Gazebo里加载的时候报了三个错误,在这之前,我没接触过URDF或XACRO文件,本篇文章就以这个阿克曼小车的XACRO文件为例,对URDF或XACRO文件的格式和内容进行解读,期望经过解读和学习,找到错误原因及所在,并解决这三个错误    先来放一下上面右图所示的模型的完整的XACRO文件: <?xml version="1.0"?> <!-- racecar.urdf.x

慕羽★的博客 3702

【YARN】了解 YARN 架构的基础知识

现在我已经让您了解了 YARN 的必要性,接下来让我向您介绍 Hadoop 2.0 的核心组件 YARN。 YARN 允许图形处理、交互式处理、流处理以及批处理等不同的数据处理方法来运行和处理存储在 HDFS 中的数据。因此,YARN 将 Hadoop 开放给 MapReduce 之外的其他类型的分布式应用程序。

Data · Model · Agent · Repeat 2634

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

YARN/MRv2 ResourceManager代码分析

本文分析了Hadoop-0.23.0中一个Application从提交到运行结束的整个过程。期间涉及到Client,ResourceManage,NodeManager等组件以及RMClientProtocol,AMRMProtocol,ContainerManager等通信协议。 【注】 本文的两个主要图片可能不够清晰,可以从这里下载。 (上图参考了《Hadoop 0.23 MRv2

caodaoxi的专栏 1301

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

S4,Storm; Mesos,YARN;Spark,Hadoop---YARN

Apache Hadoop NextGen MapReduce (YARN) MapReduce has undergone a complete overhaul in hadoop-0.23 and we now have, what we call, MapReduce 2.0 (MRv2) or YARN. The fundamental idea of MRv2 is to spli

putaozhuose的专栏 1480

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

yarn是什么?为什么会产生yarn,它解决了什么问题?以及yarn的执行流程

yarn是什么?为什么会产生yarn,它解决了什么问题? 答:yarn是作业调度和集群资源管理的一个框架。 首先对之前的Hadoop 和 MRv1 简单介绍如下: Hadoop 集群可从单一节点(其中所有 Hadoop 实体都在同一个节点上运行)扩展到数千个节点(其中的功能分散在各个节点之间,以增加并行处理活动)。图 1 演示了一个 Hadoop 集群的高级组件。   图 1. Hadoo

3668

概述Hadoop2.0中Yarn

什么是Yarn Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。 为什么要使用Yarn Hadoop经历主要经历了两个版本。在Hadoop v2.0的版本中...

Dawn_Zi的博客 1030

YARN框架概述与集群部署

YARN框架概述与集群部署

qq_46439199的博客 3219

Apache Hadoop YARN详解

Yarn 是hadoop2.0后推出的一个资源调度平台,负责为运算程序提供服务器计算资源,相当于一个分布式的操作系统平台,而 MapReduce、Spark、Flink 等运行程序则相当于运行于操作系统平台之上的应用程序。

m0_37967990的博客 973

什么是Hadoop Yarn

尽管后续出现更轻量的资源管理工具(如 Kubernetes),YARN 仍是企业级 Hadoop 生态的基石。:掌握 YARN 的架构和调度原理,是深入理解 Hadoop、Spark 等大数据技术的关键一步!(如 MapReduce、Spark、Flink 等)在同一个集群上运行。(Yet Another Resource Negotiator)是。,使 Hadoop 从单一的 MapReduce 计算框架演变为。YARN 是 Hadoop 2.0+ 的。

ThisIsClark 1342

Hadoop架构-YARN

Client将写好的程序打成jar包,上传给RM。RM监控着所有NodeManager的资源情况(内存、CPU、磁盘io等),因此RM就知道哪个NodeManager是空闲的。 假设NodeManager2的资源是足够的,RM就会启动它启动Application Master进程。然后NM2运行jar包程序,就知道要对哪个数据进行计算。 首先对数据切片,若切5个片段,app mstr就会根据切片的...

墨玉浮白的博客 557

Hadoop Yarn-ResourceManager HA搭建

文章目录1. 配置文件mapred-site.xmlyarn-site.xml2. 启动3. 运行自带wordcount4. 停止 模拟环境:四台虚拟机node1、node2、node3、node4 node1 node2 node3 node4 NameNode-1 NameNode-2 DataNode-1 DataNode-2 DataNode-3 Zookeeper-1 Zookeeper-2 Zookeeper-3 zkfc-1 zkfc-2 Jour

sinat_35400668的博客 698
上一篇: scala 基础 隐式类型
下一篇: Hadoop Yarn 框架原理及运作机制
mllhxn
博客等级 码龄14年 116粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值