Advertisement

Hadoop面试题---Yarn的作用以及工作机制

阅读量:

一、Yarn的作用

在大数据生态环境中,yarn主要有两个作用:资源管理和程序调度。

二、Yarn的组成

主要包含以下组件:ResourceManager、NodeManager、ApplicationMaster 和还包括其他相关组件。

三、Yarn的基础架构

(1)ResourceManager的作用如下:
1)接收并处理客户端发起的请求;
2)实时监控NodeManager的工作状态,并对每个NodeManager上的资源进行整合管理与调度;
3)负责将空闲的Container分配给ApplicationMaster,并持续监督其运行状态;此外,在调度过程中使用Scheduler来完成相关任务;
主要组成部分包括:资源调度器(Sheduler),负责整合管理与调度各节点上的资源;以及应用程序管理器(ApplicationManager),负责将空闲的Container分配给ApplicationMaster并监督其运行状态。

(2)NodeManager作用:
1)管理单个节点的资源使用;2)定期向ResourceManager报告资源使用状况以及容器运行状态。

(3)ApplicationMaster作用:
1)承担整个任务执行过程中的监控职责,并能及时反馈任务运行状态;能够重新启动未完成的任务;2)协助RM从资源库中获取所需资源,并将这些资源分配给内部的任务处理。

(4)Container是一个Yarn中的抽象概念,在实际应用中它代表了一个节点上多个复杂维度的综合体现。这个概念包括但不限于以下几个方面:首先是计算机内部的各种核心组件如内存(Memory)、中央处理器(Central Processing Unit, CPU)、磁盘存储(Disk Storage)以及网络接口(Network Interface)。当访问矩阵(Access Matrix, AM)向 ResourceManager(Resource Manager, RM)提交资源请求时 RM会将可用的计算能力以容器的形式反馈给AM。

三、Yarn作业提交全过程

1.作业提交

在这里插入图片描述

第1步:Client 调用 job.waitForCompletion()方法,并将该 MapReduce 作业提交至整个集群的同时获取一个作业 ID。
第2步:RM 返回该 job 的资源提交路径及其对应的作业 ID。
第3步:将 jar 包、切片信息及相关配置文件发送至指定资源存储位置。
第4步:在完成所有资源提交后,请 RM 执行 MrAppMaster 实际上是 MapReduce 的 ApplicationMaster 实现类(MrAppMaster),它使得 MapReduce 计算框架能够在 YARN 上运行起来。

2.作业初始化

在这里插入图片描述

第5步:当Resource Manager(RM)接收到Client的请求时,在其管理的应用程序中(即ApplicationManager(AMG)),将该作业加入到容量调度器(Scheduler)中;
第6步:调度系统(Scheduler)将为ApplicationManager(AMG)分配一个空闲的应用节点资源(NodeManager(NM));
第7步:由该NodeManager(NM),负责创建Container并启动用于监控任务状态的应用主节点(MRAppmaster),以查看任务执行状态;
第8步:从客户端接收提交的资源切片信息,并根据这些切片信息生成相应的Task实例;
第9步:将相关数据传输至Resource Manager进行注册。

3.任务分配

在这里插入图片描述

第 10 步:ApplicationMaster向 RM (Scheduler)发起请求执行MapTask任务资源的多线程运行。
第 11步:RM 负责将MapTask任务分配给空闲的NodeManager,并让其依次接收相应的任务并创建相应的容器(一到多个),每个Task分别对应一个Container。

第12步

第13步

第14步

第15步

全部评论 (0)

还没有任何评论哟~