YARN与MapReduce的异同

YARN与MapReduce对比解析
YARN和MapReduce不是并列关系,而是演进关系。
核心结论:YARN是下一代Hadoop的资源管理平台,而MapReduce是运行在YARN之上的一种计算框架。
下面通过一个表格和详细解释来阐述它们的异同。
核心关系比喻
Hadoop 1.0时代:MapReduce既当老板(管理资源)又当工人(执行计算)。 
Hadoop 2.0/3.0时代:YARN成为专门的老板(负责集群资源管理),而MapReduce降级为一名工人(只负责MapReduce计算),
同时还可以有其他的“工人”(如Spark、Flink)为同一个“老板”工作。

异同对比表
维度	MapReduce (作为计算框架)								YARN
定位与角色	|一种分布式计算模型和框架					 |统一的资源管理和作业调度平台
核心职责	|1. 定义数据处理逻辑(Map和Reduce函数)      |1. 管理整个集群的资源(CPU、内存)
			|2. 处理数据分区、排序、洗牌等               |2. 为所有应用程序调度资源
			|3. 管理单个MapReduce作业的生命周期	         |3. 监控NodeManager健康
在Hadoop生态中的位置	|Hadoop 1.0的核心,既是计算框架又是资源管理器。 |Hadoop 2.0+ 的核心,成为集群的操作系统内核。
						|在Hadoop 2.0+中,变为运行在YARN之上的一个应用。	
架构设计	主从架构:                                   |双层架构:
            - JobTracker (主):管理资源与作业调度        |- ResourceManager (全局主):管理所有资源
            - TaskTracker (从):执行任务	             |- NodeManager (每个节点从):管理单节点资源
                                                         |- ApplicationMaster (每个应用主):管理单个应用
可扩展性	|差。JobTracker单点瓶颈,集群规模上限约4000节点。	|好。ResourceManager负担轻,集群可扩展至上万节点。
通用性		|差。只能运行MapReduce作业。				|极强。可以运行多种计算框架,如MapReduce, Spark, Flink, Tez等。
资源利用率	|低。资源被静态划分为Map Slot和Reduce Slot,无法共享。	|高。资源动态分配,按需申请,不同框架共享集群资源。

#详细阐述
一、Hadoop 1.0 的时代:MapReduce “一身二职”
在Hadoop 1.0中,MapReduce的含义是宽泛的,它包含了两部分:
计算框架:Map和Reduce的编程模型。
资源调度系统:由 JobTracker 和 TaskTracker 组成。
JobTracker:单点负责资源管理(哪个TaskTracker有空闲槽位)和作业调度(先运行哪个任务,失败任务的重试等)。
TaskTracker:定期向JobTracker汇报心跳,并执行它分配的任务。

这种架构的弊端非常明显:
单点故障:JobTracker挂了,整个集群就瘫痪了。
扩展性瓶颈:JobTracker需要管理所有任务和资源,压力巨大,限制了集群规模。
资源浪费:Map Slot和Reduce Slot不能混用,可能导致一边槽位紧张,另一边闲置。
框架锁定:整个集群只能为MapReduce服务,无法运行其他计算框架。

二、Hadoop 2.0 的时代:YARN 成为“集群操作系统”
为了解决上述问题,YARN应运而生。它的核心思想是:将资源管理和作业调度/监控的功能分离开。
YARN 接管了资源管理的职责,成为一个独立的、通用的资源管理平台。
MapReduce 则退化为一个纯粹的计算框架,它只需要专注于如何实现Map和Reduce逻辑。
在新的架构下,一个MapReduce作业的运行流程是这样的:
客户端提交MapReduce作业到YARN的ResourceManager。
ResourceManager在某个NodeManager上启动一个特殊的容器,这个容器里运行的是 MapReduce ApplicationMaster。
这个 MapReduce ApplicationMaster 负责这个MapReduce作业的全部生命周期管理(类似于1.0中的JobTracker,但只负责这一个作业)。
ApplicationMaster向ResourceManager申请资源(容器)。
申请到资源后,ApplicationMaster与对应的NodeManager通信,启动MapTask或ReduceTask(在这些容器中运行)。
ApplicationMaster监控所有任务的运行状态,在任务失败时重新申请资源以重试。

三、相同点
尽管定位不同,但它们也有共同的目标和背景:
同为Hadoop核心组件:都是Apache Hadoop项目的重要组成部分。
设计目标:都是为了解决大规模数据的分布式处理问题。
容错性:都设计了良好的容错机制,能够处理节点故障和数据丢失。
数据 locality:都强调“计算向数据移动”,尽量在存储数据的节点上执行任务,以减少网络传输。

总结
YARN不是MapReduce的替代品,而是其底层架构的革新者。它让MapReduce从繁重的资源管理工作中解脱出来,专心做它擅长的批量计算。
YARN的价值在于“解耦”,它让Hadoop从一个单一的批处理系统,演变成了一个可以支持多种计算框架(流处理、交互式查询、图计算等)的通用大数据平台。
可以说,没有YARN,Hadoop很可能已经被Spark、Flink等更先进的框架所取代。正是因为YARN的出现,
Hadoop才能持续焕发活力,成为大数据生态系统不可或缺的基石。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值