首页 > 其他 > 详细

mapreduce2

时间:2020-11-22 13:04:13      阅读:27      评论:0      收藏:0      [点我收藏+]

1.输入数据接口:InputFormat

(1)Text:文件按照行划分,key就是这一行在文件中的偏移量,value就是这一行文本

(2)FiexedLength:读取输入文件的固定长度的记录,这种文件不该是文本文件,二进制文件比较多

(3)KeyValue:文件按照行分割,按分隔符把一行数据切割,前面是key,后面是value组成,key 和 value的分隔符若没有指定,那么整行为key,value为空

(4)NLine:是可以将N行数据划分为一个Split,作为MapTask输入

(5)CombineTextInputFormat:把多个小文件合并成一个切片处理,提高处理效率

(6)自定义

2.Mapper

用户根据业务实现三个方法:map(),setup(),cleanup()

3.Partition分区

(1)默认实现HashPartitioner,逻辑是根绝key得哈希值和numReduces来返回一个分区号

4.Comparable排序

mapreduce强制按照key进行排序

(1)当我们用自定义得对象作为key来输出时,就必须实现WritableComparable接口,重写其中CompareTo()方法

(2)部分排序:对最终输出得每一个文件进行内部排序

(3)全排序:对所有数据进行排序,通常只有一个reduce

(4)二次排序:排序的条件有两个

5.Combiner合并

Combiner合并可以提高程序的执行效率,减少IO传输。但是使用不能影响原有业务的处理结果

6.Reducer端分组:GroupComparator

在reduce端对key进行分组,应用于:在接收的key为bean对象时,想让一个或者几个字段相同的key进入到同一个reduce方法,可以采用分组排序

7.处理逻辑接口:Reducer

用户根据业务实现三个方法;reduce(),setup(),cleanup()

8.输出数据接口:OutputFormat

(1)默认实现类是TextOutputFormat。功能逻辑是,将每一对kv对,向目标文件输出一行

(2)将SequenceFileOutputFormat输出作为后续Mapreduce任务的输入,这便是一种很好的输出形式,格式紧凑,容易被压缩

mapreduce2

原文:https://www.cnblogs.com/hapyygril/p/14018805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!