MapReduce 的知识点详解
MapReduce 核心思想
分而治之,先分后和
MapReduce由Map和Reduce组成
Map:将数据进行拆分
Reduce:对数据进行汇总
WordCount计算
计算每个单词出现的次数
原始数据
zhangsan,lisi,wangwu
zhaoliu,maqi
zhangsan,zhaoliu,wangwu
lisi,wangwu
期望的最终
zhangsan 2
lisi 2
wangwu 3
zhaoliu 2
maqi 1
偏移量
是指每个字符移动到当前文档的最前面需要移动的字符个数。
Hadoop数据类型
java:int ,long,double,float,boolean,String
hadoop:intWritable,LongWritable,DoubleWritable,FloatWritable
WordCount-Map实现
1.实例一个class 继承Mapper输入的key的数据类型,输入的value的数据类型,输出的key的数据类型,
输出的value的数据类型
2.重写map方法 map(LongWritable key,Text value,Context context)
key:行首字母的偏移量
value:一行数据
context:上下文对象
3.根据业务需求进行切分,然后逐一输出
WordCount-Reduce实现
1.实例一个class 继承Reduce输入的key的数据类型,输入的value的数据类型,输出的key的数据类型,
输出的value的数据类型
2.重写reduce方法
key:去重后单词
values:标记的1(好多个1,key出现几次就有几个1)
context:上下文对象
3.遍历values 进行汇总计算
WordCount-Driver实现
1.实例一个class 继承Configured实现Tool
2.重写run方法
3.在run方法中将自己编写的mapper和reduce添加到集群
4.输入输出