MAPREDUCE的过程

mapreduce是hadoop的核心组件之一,主要是负责分布式计算的,它的核心思想就是“分而治之”。它的整个流程是什么样的呢,接下来我们就一步一步的介绍。
大致可以分为三个阶段:第一阶段是map阶段,第二阶段是shuffle阶段,第三阶段是reduce阶段。
其中第一阶段的map阶段分为两步:
第一步:首先通过InputFormat将文件读取进来,并进行切分,切分成(key,value)对的形式,key是该行数据的偏移量,value是这一行数据。切分完成后以(key,value)的形式发送给map端。
第二步:map程序接受到(key,value)数据以后,我们就可以根据我们自身的业务逻辑,对数据进行处理。然后处理完成后的数据再以(key,value)的形式进行输出。
第二阶段:shuffle阶段
第三步:对输出的(key,value)数据进行分区,默认使用hashPartationer,对key取hash值,并用reduceTask的数量取余,这样就把map中的数据都输出到不同的reduceTask任务中
第四步:对不同分区的数据按照相同的key进行排序
第五步:对排序后的数据进行分组,将相同key的value放到同一个集合中
第六步:对分组后的数据进行combine操作,降低网络延迟
第三阶段:reduce阶段
第七步:对多个map的任务进行合并,排序,写reduce函数自己的逻辑,将输入的(K,V)转换成新的(K,V)
第八步:设置outputFormat,将输出的(K,V)保存到文件中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值