MapReduce概念理解

1、MapRecue有以下几个概念

1)切片(split)-就是将输入文件切分开来读取。具体最终切片个数比较复杂

2)分区(Partitioner)-可以理解为输出文件最终的个数(解为下图中的Reduce个数)

2、MapReduce过程可以以下几个过程

由三个阶段构成:Map、shuffle(又分为Map shuffle 和reduce shuffle)、Reduce。

Map: 1) 负责数据的过滤分法 将需要的数据提取出来 2)将原始数据转化为键值对<k,v>形式

shuffle: 是我们使用MapReduce不用编写的模块, 但是确实MapReduce的核心。其中包括排序(Sort), 分组(Group), Meger等

Reduce: 汇总的模块, 同一个key的汇总或者是不同Map的汇总

Recue可以分为Map短的Reduce(Combine)-对同一个Map中数据的汇总 ,以及Reduce-不同Map之间的汇总

3、MapRecude具体使用中涉及比较多的词

1)Map  -读取文件, 把文件中的数据转换为<k,v>形式, 这里并不涉及怎么把数据分区,也就是说Mao不负责怎么把一个key的数据整合到一起,这个是Partitioner 和shuffle的功能

map个数:应用针对每一个分片运行一个map,一般而言,对于每一个输入的文件会有一个map split。如果输入文件太大,超过了hdfs块的大小(64M 可以设置)那么对于同一个输入文件我们会有多余2个的map运行起来。

2)Partitioner  一般和reduce个数配合使用(将一个Map的数据根据key分到若干的分区中(个数由reduce个数决定)

3)Combine (map端的reduce)-将同一个Map中,同一个key的数组整合。

4)Reduce (-可以设置数量)  -对所有Map的数据进行整合, 输入文件已保证同一个key的数据已经存放在同一个分区中(同一个Map中国Partitioner 来保区分,不同Map中同一个key的数据,通过reduce shuffle来保证),所有Map的同一个key的数据存放在同一个set中

下面两个图片结合看,理解更深刻。

 

 

这里只简单的介绍了MapReduce的一些概念。 后续会更新具体使用

参考文档

https://blog.csdn.net/fenghuibian/article/details/88802242

https://www.cnblogs.com/at0x7c00/p/8064182.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值