mapreduce

MapReduce计算框架

如果将 Hadoop 比做一头大象,那么MapReduce就是那头大象的电脑。MapReduce是Hadoop核心编程模型。在Hadoop 中,数据处理核心就是 MapReduce程序设计模型。

Map 和Reduce的概念是从函数式变成语言中借来的,整个MapReduce计算过程分为Map 阶段和Reduce 阶段,也称为映射和缩减阶段,这两个独立的阶段实际上是两个独立的过程,即 Map 过程和 Reduce 过程,在 Map 中进行数据的读取和预处理,之后将预处理的结果发送到 Reduce中进行合并。

MapReduce执行流程

  1. 输入和拆分

不属于map和reduce的主要过程,但属于整个计算框架消耗时间的一部分,该部分会为正式的map准备数据。

  1. Map映射

是Hadoop并行性质发挥的地方。根据用户指定的 map过程,MapReduce尝试在数据所在机器上执行该 map程序。在HDFS中,文件数据是被复制多份的,所以计算将会选择拥有此数据的最空闲的节点。
在这一部分,map内部具体实现过程,可以由用户自定义。

  1. Shuffle派发

Shuffle 过程是指 Mapper 产生的直接输出结果,经过一系列的处理,成为最终的
Reducer直接输入数据为止的整个过程。这是mapreduce的核心过程。该过程可以分为两
个阶段:
Mapper 端的 Shuffle:由 Mapper 产生的结果并不会直接写入到磁盘中,而是先存
储在内存中,当内存中的数据量达到设定的阀值时,一次性写入到本地磁盘中。并同时进行
sort(排序)、combine(合并)、partition(分片)等操作。其中,sort 是把Mapper 产
生的结果按照 key 值进行排序;combine 是把key 值相同的记录进行合并;partition是把
数据均衡的分配给 Reducer。
Reducer 端的Shuffle:由于Mapper 和Reducer 往往不在同一个节点上运行,所以
Reducer 需要从多个节点上下载 Mapper 的结果数据,并对这些数据进行处理,然后才能
被Reducer 处理。

  1. Reduce归约(缩减、化简)

Reducer 接收形式的数据流,形成形式的输出,具体的过程可以由用户自定义,最终结果直接写入 hdfs。每个 reduce 进程会对应一个输出文件,名称以part-开头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值