YARN的组成

YARN的组成有哪些?
1、主要由 ResourceManager、ApplicationMaster、
nodeManager、container组成
2、ResourceManager(RM)
YARN的分层结构是ResourceManager
RM控制整个集群,管理应用程序向基础计算机资源的分配
RM将各个资源安排给nodeManager
RM与ApplicationMaster一起分配资源
RM与nodeManager一起启动和监视他们的基础应用程序
作用:
1)处理客户端请求
2)启动或监控ApplicationMaster
3)监控nodemanager
4)资源分配与调度
3、ApplicationMaster(AM)
AM管理在YARN内运行的应用程序的实例
AM负责协调来自RM的资源
AM通过nodeManager 监视 容器执行和资源调度
作用:
1)负责数据切分
2)为程序申请资源并分配给内部任务
3)任务的监视与容错
4、NodeManager(NM)
NM 管理YARN集群中的每个节点
NM提供针对集群中的每个节点的服务
NM从监督对一个容器的终生管理到监视资源,跟踪节点健康
作用
1)管理单个节点上的资源
2)处理来自RM的命令
3)处理来自AM的命令
5、Container
Container 是 YARN中的资源抽象 封装了某个节点上的多维度资源(内存 cpu 磁盘 网络等)
当AM向RM申请资源时,RM为AM返回的资源便是Container表示的
YARN会为每个任务分配一个Container,且该任务只能使用Container中描述的资源
作用:
对任务运行环境进行抽象
封装CPU,内存等多维度资源以及环境变量,启动命令等任务运行的相关信息
6.小结:
要使用一个 YARN 集群,首先需要一个包含应用程序的客户的请求。ResourceManager 协商一个容器的必要资源,启动一个 ApplicationMaster 来表示已提交的应用程序。通过使用一个资源请求协议,ApplicationMaster 协商每个节点上供应用程序使用的资源容器。执行应用程序时,ApplicationMaster 监视容器直到完成。当应用程序完成时,ApplicationMaster 从 ResourceManager 注销其容器,执行周期就完成了。

重点:
解释说明YARN的工作流程?写清流程.(重点) (…重点)
答:当用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:第一个阶段是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行完成。如图2-11所示,YARN的工作流程分为以下几个步骤:
步骤1 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
步骤2 ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。
步骤3 ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。
步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
步骤5 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。
步骤6 NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。
步骤8 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。
YARN的优势:
描述YARN 优势有哪些? (…重点)
1、更快地MapReduce计算
YARN利用异步模型对MapReduce框架的一些关键逻辑结构进行了重写,相比于MRv1,具有更快地计算速度。
2、对多框架支持
YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上。;
3、框架升级更容易
在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上,而是被封装成一个用户程序库(lib)存放在客户端,
当需要对计算框架进行升级时,只需升级用户程序库即可。

你可能感兴趣的:(记录)