MapReduce

MapReduce是一种计算框架,简化了大规模数据集的处理过程。通过分而治之,然后汇总的思想,MapReduce将复杂任务分解成多个简单任务并行处理,最后汇总结果。这一框架避免了程序员直接面对分布式编程的复杂性,极大地提高了开发效率。

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

1.MapReduce概述

    HDFS实现了分布式文件存储,存储问题解决了,我们就需要考虑如何对数据进行处理,
MapReduce是一个计算框架(编程模型),基于该计算框架,可以很容易的编写数据处理程序,
从而以较高的效率处理海量数据集。
    MR框架对于程序员的最大意义在于,不需要掌握分布式计算编程,
不需要考虑分布式编程里可能存在的种种难题,比如任务调度和分配、文件逻辑切块、位置追溯、工作。
样,程序员能够把大部分精力放在核心业务层面上,大大简化了分布式程序的开发和调试周期。

2.MapReduce的设计思想

MapReduce的设计思想简单概括而言,就是“分而治之,然后汇总”。整个MapReduce阶段分为两大部分,分别是Map、Reduce。

(1)map负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算(本地化策略);三是这些小任务可以并行计算,彼此间几乎没有依赖关系。
(2)reducer负责”合”,即对map阶段输出的处理结果进行汇总。

3.MapReduce框架组成结构

在这里插入图片描述

在MapReduce程序进行计算时,需要yarn进行资源管理,yarn主要分为ResourceManager和NodeManager两部分。

(1)ResourceManager
ResourceManager是一个全局的资源管理器,ResourceManager控制整个集群并管理程序向集群其他DataNode进行资源的分配。
(2)NodeManager
NodeManager是每个DataNode节点上的资源和任务管理器,一方面,它会定时地向ResourceManager汇报本节点上的资源使用情况以及运行状态;另一方面,它接收并处理来自ResourceManager分配的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值