一、基本原理
1.思想引入 : log count
2.简单Demo : words count
二、使用细节
-
通用规范
数据通过网络在节点之间传输需要序列化,但JDK自带序列化冗余。为提高海量键值对的传输,Hadoop实现了精简序列化类型:LongWritable(Long), Text(String), NulWritable(Null NullWritable.get()),… -
Map规范
extends Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>,需要指定四个类型
默认情况下:
(1) mapper的输入输出都是以Entry<key,value>的形式封装
(2) KEYIN是要处理的文本中每一行的起始偏移量,VALUEIN是每一行的文本内容
(3)需要重写map(KEYIN,VALUEIN,Context),每读一行数据就自动调用一次该业务逻辑
-
Reduce规范
extends Reduce<KEYIN, VALUEIN, KEYOUT, VALUEOUT>,需要与map的输出类型相对应
需要重写reduce(KEYIN, Iterable<VALUEIN>, Context),在map阶段完成后,按key分组(group),传递