Yarn快速入门系列(1)——基本架构与三大组件介绍

网友投稿 816 2022-05-30

本篇博客,博主为大家分享的内容是关于一个在Hadoop中非常重要的组件——YARN。到底有多重要呢?请看下面详解!

码字不易,先赞后看!

文章目录

Apache Hadoop YARN

1. Yarn 通俗介绍

2. Yarn基本架构

3. Yarn三大组件介绍

3.1 ResourceManager

3.2 NodeManager

3.3 ApplicationMaster

Apache Hadoop YARN

1. Yarn 通俗介绍

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个

通用资源管理系统和调度平台

,可为上层应用提供统一的资源管理和调度。

它的引入为集群在

利用率、资源统一管理和数据共享等方面带来了巨大好处。

可以把yarn理解为相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序,Yarn为这些程序提供运算所需的资源(内存、cpu)。

大家需要清楚以下几点:

yarn并不清楚用户提交的程序的运行机制

yarn只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源)

yarn中的主管角色叫ResourceManager

yarn中具体提供运算资源的角色叫NodeManager

yarn与运行的用户程序完全解耦,意味着yarn上可以运行各种类型的分布式运算程序,比如mapreduce、storm,spark,tez ……

spark、storm等运算框架都可以整合在yarn上运行,只要他们各自的框架中有符合yarn规范的资源请求机制即可

yarn成为一个通用的资源调度平台.企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享

2. Yarn基本架构

YARN是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。

其中:

ResourceManager

负责所有资源的监控、分配和管理,

一个集群只有一个

NodeManager

负责每一个节点的维护,

Yarn快速入门系列(1)——基本架构与三大组件介绍

一个集群有多个

ApplicationMaster

负责每一个具体应用程序的调度和协调,

一个集群有多个

对于所有的applications,RM拥有绝对的控制权和对资源的分配权。而每个AM则会和RM协商资源,同时和NodeManager通信来执行和监控task。

3. Yarn三大组件介绍

从上面介绍的内容来看,大家对于Yarn组件应该有了一定的认知,接下来,我们对其进行详细介绍!

ResourceManager

负责整个集群的资源管理和分配,是一个全局的资源管理系统。

NodeManager

以心跳的方式向ResourceManager汇报资源使用情况(目前主要是CPU和内存的使用情况)。RM只接受NM的资源回报信息,对于具体的资源处理则交给NM自己处理。

YARN Scheduler

根据application的请求为其分配资源,不负责application job的监控、追踪、运行状态反馈、启动等工作。

NodeManager是每个节点上的资源和任务管理器

,它是管理这台机器的代理,负责该节点程序的运行,以及该节点资源的管理和监控。

YARN集群每个节点都运行一个NodeManager

NodeManager定时向ResourceManager汇报本节点资源(CPU、内存)的使用情况和Container的运行状态。当ResourceManager宕机时NodeManager自动连接RM备用节点。

NodeManager接收并处理来自ApplicationMaster的Container启动、停止等各种请求。

用户提交的每个应用程序均包含一个ApplicationMaster,它可以运行在ResourceManager以外的机器上。

负责与RM调度器协商以获取资源(用Container表示)。

将得到的任务进一步分配给内部的任务(资源的二次分配)。

与NM通信以启动/停止任务。

监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

当前YARN自带了两个ApplicationMaster实现,一个是用于演示AM编写方法的实例程序DistributedShell,它可以申请一定数目的Container以并行运行一个Shell命令或者Shell脚本;另一个是运行MapReduce应用程序的AM—MRAppMaster。

注意:RM只负责监控AM,并在AM运行失败时候启动它。RM不负责AM内部任务的容错,任务的容错由AM完成。

好了,本次的内容分享就到这里,下一篇博客将为大家介绍Yarn的运行流程,敬请期待!!!

Yarn

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于华为TICS实现联合风控模型训练
下一篇:华为云CCE体验之云原生应用部署与运维管理
相关文章