MapReduce:
海量离线处理,易开发,易运行,将作业拆分成Map和Reduce阶段。
MapReduce的重要概念:
1、Split:交由MapReduce处理的数据块,最小的计算单元
block 是HDFS中数据的存储单元,默认为128M
2、InputFormat:将输入数据进行分片,并且得到一个RecordReader.将数据分片从HDFS上读出
3、OutoutFormat:得到一个RecordWriter,并且将数据分片输出存储到HDFS上
4 Partitioner:将Map得到的结果进行分组,通过shuffer机制传递给不同的redeucer,默认相同分组传给同一个reducer。但也可以通过重写getPartition方法来实现自己的分组策略。
MapReduce的执行步骤
准备map的处理数据
Mapper处理
Shuffer处理
Reducer处理
结果输出
(input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)
其将输入输出都看成键值对,传输的对象都应该是序列化的因此都应实现Writable接口。