YARN产生背景
a)JobTracker单点故障
b)JobTracker承受的访问压力大,影响系统的扩展性
c)不支持MapReduce之外的计算框架,比如storm、spark、flink
什么是YARN
YARN是Hadoop2.0版本引进的资源管理系统,直接从MR1演化而来。
核心思想:将MR1中的JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现。
ResourceManager:负责整个集群的资源管理和调度
ApplicationMaster:负责应用程序相关事务,比如任务调度、任务监控和容错等。
YARN的出现,使得多个计算框架可以运行在同一个集群之中。
1. 每一个应用程序对应一个ApplicationMaster。
2. 目前可以支持多种计算框架运行在YARN上面,比如MapReduce、storm、Spark、Flink。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
YARN的基本架构
从YARN的架构来看,它主要由ResourceManager、 NodeManager、ApplicationMaster 和 Container组成
ResourceManager(RM)
RM是一个全局的资源管理器,负责整个系统的 资源管理和分配。它主要由两个组件构成:调度器(Schedule)和应用程序管理器(Application Manager, ASM)
YARN分层结构的本质是ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager将各个资源部分(计算、内存、带宽等)精心安排给基础NodeManager(YARN的每节点代理)。ResourceManager还与ApplicationMaster一起分配资源,与NodeManager一起启动和监视它们的基础应用程序。在此上下文中,ApplicationMaster承担了以前的TaskTracker的一些角色,ResourceManager承担了JobTracker的角色。
a)调度器(Schedule)
调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作。
b)应用程序管理器(Application Manager)
应用程序管理器负责管理整个系统中所有的应用程序,包括应用程序提交、调度协调资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它。
ApplicationMaster(AM)
ApplicationMaster管理一个在YARN内运行的应用程序的每个实例。ApplicationMaster负责协调来自ResourceManager的资源,并通过NodeManager监视容器的执行和资源的使用(cpu、内存等资源分配)。
请注意,尽管目前的资源更加传统(CPU核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元,或专用处理设备)。从YARN角度来讲,ApplicationMaster是用户代码因此存在潜在安全问题。YARN假设ApplicationMaster存在错误或者甚至是恶意的,因此将它们当做无特权的代码对待。
NodeManager(NM)
NodeManager管理一个YARN集群中的每个节点。NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终身管理到监视资源和跟踪节点健康。MRv1通过插槽管理Map和Reduce任务执行,而NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN继续使用HDFS层。它的主要NameNode主要用于元数据服务,而DataNode用于分散在一个集群中的复制存储服务。
NM是每个节点上的资源和任务管理器。一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container运行状态;另一方面,它接收并处理来自AM的 Container 启动/停止等各种请求。
Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存,CPU,磁盘,网络等。当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。
YARN会为每个任务分配一个Container,且该任务只能用该Container中描述的资源。
要使用一个YARN集群,首先需要来自包含一个应用程序的客户请求。
ResourceManager协商一个容器的必要资源,启动一个ApplicationMaster来表示已经提交的应用程序。通过使用一个资源请求协议,ApplicationMaster协商每个节点上供应程序使用的资源容器。执行应用程序时,ApplicationMaster监视容器,直到完成。当应用程序完成时,ApplicationMaster从ResourceManager注销其容器,执行周期就完成了。
通过以上的描述,应该明确的一点是,旧的Hadoop架构收到了JobTracker的高度约束,JobTracker负责整个集群的资源管理和作业调度。新的YARN架构打破了这种模型,允许一个新ResourceManager管理跨应用程序的资源使用,ApplicationMaster负责管理作业的执行。这一更改消除了这一瓶颈,还改善了Hadoop集群的扩展能力,使其扩展能力比以前大得多。此外,不同于传统的MapReduce,YARN允许使用Message Passing Interface 等标准通信模式,同时执行各种不同的编程模型,包括图形计算、迭代式处理、机器学习和一般集群计算。
YARN的工作原理
MapReduce On YARN
MapReduce On YARN
a)YARN负责资源管理和调度
b)ApplicationMaster负责任务管理
MapReduce ApplicationMaster
a)MRAppMaster
b)每个MapReduce作业启动一个MRAppMaster
c)MRAPPMaster负责任务切分、任务调度、任务监控、容错等
MRAPPMater任务调度
a)YARN将资源分配给MR APPMaster
b)MRAPPMaster进一步将资源分配给内部任务
MRAPPMaster容错
a)MRAPPMaster运行失败后,由YARN重新启动
b)任务运行失败后,MRAPPMaster重新申请资源
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
YARN HA
ResourceManager HA 由一对 Active,Standby节点构成,通过RMStataStore存储内部数据和主要应用的数据及标记。
目前支持的可替代的 RMStateStore实现有:基于内存的 MemoryRMStateStore,基于文件系统的FileSystemRMStateStore,及基于Zookeeper的ZKRMStateStore。
ResourceManager HA的架构模式同NameNode HA的架构模式基本一致,数据共享由RMStateStore,而ZKFC称为ResourceManager进程的一个服务,非独立存在。
转载:https://blog.csdn.net/u010176083/article/details/53248299
相关推荐
Hadoop技术内幕深入解析YARN架构设计与实现原理
《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书由董西成撰写,是了解和掌握YARN(Yet Another Resource Negotiator)的核心参考资料。YARN是Hadoop生态系统中的关键组件,它作为数据处理框架的资源管理器...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》.(董西成).PDF
《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源...
《董西城-Hadoop技术内幕-深入理解YARN架构设计与实现原理》是一部全面解析Hadoop生态系统中YARN(Yet Another Resource Negotiator)核心组件的专业著作。这本书详细介绍了YARN的架构、设计思想以及实现机制,旨在...
《Hadoop技术内幕:深入Yarn架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源管理...
大数据MapReduce和YARN架构原理 大数据处理中,MapReduce和YARN架构原理是两个核心概念。MapReduce是一种分布式计算框架,用于处理大规模数据集的并行运算,而YARN(Yet Another Resource Negotiator)是Hadoop 2.0...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》是由董西成撰写的一本专著,主要聚焦于Hadoop生态系统中的YARN(Yet Another Resource Negotiator)框架。这本书详细阐述了YARN的架构设计原则、核心组件以及其...
《深入解析 YARN 架构设计与实现原理》是一本由阿里专家编著的专业书籍,旨在全面揭示YARN(Yet Another Resource Negotiator)的核心概念、架构设计以及其实现机制。YARN是Apache Hadoop生态系统中的关键组件,它...
1. **YARN架构**:YARN将原本Hadoop 1.x中的JobTracker职责拆分为Resource Manager(RM)和Application Master(AM)。RM负责全局资源管理,而AM则为每个应用程序协调任务执行。 2. **ResourceManager(RM)**:RM...
部实现等多个层面全面解析YARN(Yet Another Resource Negotiator)架构设计与实现原理。YARN是Hadoop 2.0的核心组成部分,旨在提供一个统一的资源管理平台,以支持多种计算框架并行运行,提高集群资源利用率。 第...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》是由董西成编著的一本专著,专注于探讨Hadoop生态系统中的YARN(Yet Another Resource Negotiator)框架。这本书是大数据领域的重要参考资料,旨在帮助读者深入...
本文将深入解析YARN架构设计,并探讨其中的关键组件和调度策略。 首先,YARN架构主要包括三个主要组件:Resource Manager(资源管理器)、Node Manager(节点管理器)和Application Master(应用程序管理器)。 1....
Hadoop的YARN架构是Hadoop版本2.x引入的一个重要组件,它负责处理资源管理和作业调度,而核心的计算任务处理则交给了MapReduce、Tez、Spark等计算框架。YARN的出现是为了解决Hadoop早期版本中的可扩展性问题,它通过...
Hadoop技术内幕 深入解析YARN架构设计与实现原理-超清-2014年1月
YARN的基本架构主要由三部分组成: - **ResourceManager(RM)**:作为整个集群的资源统一管理者,ResourceManager负责处理客户端请求、启动和监控ApplicationMaster,并监控NodeManager以及进行资源分配与调度。 ...
了解Yarn的源码可以帮助你更好地理解其工作原理,这对于调试、开发插件或优化自定义工作流程非常有用。同时,通过阅读源码,开发者可以学习到Node.js模块化、异步编程、包管理等方面的最佳实践。 总的来说,`yarn-v...