基于YARN的MapReduce运行机制解析

为解决第一代MapReduce在大型集群中扩展性的问题,雅虎团队于2010年设计了YARN,用于资源管理和任务调度。YARN包括ResourceManager和ApplicationMaster两大组件,分别负责集群资源管理和具体应用的生命周期管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产生原因

对于节点数超出4000的大型集群,第一代的MapReduce系统开始面临扩展性的瓶颈。2010年雅虎团队开始设计下一代的MapReduce,由此YARN(Yet Another Resource Negotiator)应运而生。

框架

在这里插入图片描述
两个独立的守护进程:
资源管理器ResourceManager:管理集群上资源使用
应用管理器ApplicationMaster:管理集群上运行任务生命周期
实体:
1)Job:提交MR作业的客户端;
2)ResourceManager:Yarn资源管理器,负责协调集群上计算资源的分配;
3)MRAppMaster:负责协调运行MR作业的任务;
4)NodeManager:Yarn节点管理器,负责启动和监视集群中机器上的计算容器;
5)HDFS:分布式文件系统,用来与其他实体间共享作业文件。
思路:
应用服务器与资源管理器协商集群计算资源(容器)。在这些容器上运行特定应用程序的进程。容器由集群节点上运行的节点管理器监视,以确保应用程序使用的资源不会超过分配给它的资源。
1) 客户端提交Job给ResourceManager;
2) ResourceManager接收到客户端提交的MapReduce程序后,把程序交给某个NodeManager节点,随后在这个NodeManager节点上启动一个进程“ MRAppMaster”(应用的每个实例有一个专用的ApplicationMaster),ResourceManager分配Container容器资源给ApplicationMaster;
3) MRAppMaster首先向ResourceManager注册,这样用户可以通过ResourceManager节点查看应用程序的运行状态,随后MRAppMaster通过RPC协议向ResourceManager节点申请资源并领取资源;
4) MRAppMaster申请到Container资源后,与对应的NodeManager节点进行通信,让NodeManager启动Container容器运行MapReduce程序;
5) NodeManager节点启动完任务后(mapper+reducer),各个任务将通过RPC协议向ApplicationMaster节点报告自己的状态和进度,以让ApplicationMaster节点随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务(定时“心跳”汇报自己的状态及Container容器的运行状态);
6)MapReduce程序运行完成后,MRAppMaster节点向ResourceManager节点注销并关闭自己,资源被回收。到此任务运行完毕。

运行机制

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值