理论教育 深入了解Yarn工作流程

深入了解Yarn工作流程

更新时间:2025-09-01 理论教育 版权反馈
【摘要】:如图4-9 所示,是Yarn 的工程流程的工作流程。ApplicationMaster 向ResourceManager取消注册然后关闭,所有用到的Container 也归还给系统。Hadoop2.x MapReduce 框架采用Yarn 作为资源管理,在运行时有它特有两类实例进程:MRAppMaster 和Yarnchild,其工作流程和Yarn 很相似。当Reduce Yarnchild 运行完毕后,MRAppMaster 和Yarnchild 都会被撤销并释放相应资源。

如图4-9 所示,是Yarn 的工程流程的工作流程。

图4-9 Yarn 工作流程

1.客户端通过ResourceManager 向ApplicationsManager 提交应用,将jar 包文件等上传到HDFS 的指定目录,并请求一个ApplicationMaster 实例。

2. ApplicationsManager 生成一个Application ID。ResourceManager 将请求转发给调度器,调度器分配一个Container,然后Resource Manager 在这个Container 中启动ApplicationMaster 实例,并交由NodeManager 对ApplicationMaster 实例进行管理。(https://www.daowen.com)

3. ApplicationMaster 向ResourceManager 进行注册,注册之后客户端就可以通过查询ResourceManager 获得ApplicationMaster 的详细信息。

4. ApplicationMaster 通过计算任务数和数据本地性等信息向ResourceManager 申请Container,并由ApplicationMaster 负责将Container 启动。

5.应用程序的代码在启动的Container 中运行,NodeManager 把运行的进度、状态等信息发送给ApplicationMaster。

6.重复4~5 步骤,直至应用程序运行结束。ApplicationMaster 向ResourceManager取消注册然后关闭,所有用到的Container 也归还给系统。

Hadoop2.x MapReduce 框架采用Yarn 作为资源管理,在运行时有它特有两类实例进程:MRAppMaster 和Yarnchild,其工作流程和Yarn 很相似。在MapReduce中ApplicationMaster 的实例化叫做MRAppMaster,MRAppMaster 负责整个程序的过程调度及状态协调。MRAppMaster 启动后根据本次应用的描述信息,计算出需要的Map 和Reduce 任务数量,然后向集群申请机器启动相应数量的进程,这个进程称之为Yarnchild。MRAppMaster 首先启动Map 任务的Yarnchild,当监控到所有Map Yarnchild 任务完成之后再去启动Reduce 任务的Yarnchild 并释放Map 任务使用资源(真实情况是,某些Map Yarnchild 处理完成后,就会开始启动Reduce Yarnchild,可以观察2.3 章节pi 的运行实例即为该种情况)。当Reduce Yarnchild 运行完毕后,MRAppMaster 和Yarnchild 都会被撤销并释放相应资源。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈