MapReduce详解

Posted 蒟蒻的工具人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MapReduce详解相关的知识,希望对你有一定的参考价值。

Mapper

/**
 * KEYIN:表示mapper数据输入时候KEY的数据类型,在默认的读取数据组件下,叫InputFormat,它的行为是一行一行的读取待处理的数据
 * 读取一行,返回一行给我们的MR程序。这种情况下,KEYIN就表示每一行的起始偏移量,因此数据类型为Long
 * 
 * VALUEIN:表示mapper数据输入时候VALUE的数据类型,在默认的读取数据组件下,valuein就表示读取的这一行内容,因此数据类型为String
 * 
 * KEYOUT:表示mapper数据输出时候KEY的数据类型,在本案例中,输出的key是单词,因此数据类型是String
 * 
 * VALUEOUT:表示mapper数据输出时候VALUE的数据类型,在本案例中,输出的value是单词的次数,因此数据类型是Integer
 * 
 * 在hadoop中拥有自己封装的数据类型
 * long------LongWritable
 * String----Text
 * Integer----Intwritable
 * null------Nullwritable
 *
 **/
public static class TokenizerMapper extends Mapper<LongWritable, Text, Text, IntWritable>

前两个LongWritable, Text是固定,代表行偏移量和行内容
后两个Text, IntWritable是自定义的,代表map的key和value

Reduce

/**
 * KEYIN:表示reducer阶段输入数据key的类型,对应mapper的输出key类型,在本案例中就是单词--Text
 * VALUEIN:表示reducer阶段输入数据value的类型,对应mapper的输出value类型,在本案例中就是单词次数--IntWritable
 * KEYOUT:表示reducer阶段输出数据key的类型,在本案例中就是单词--Text
 * VALUEOUT:表示reducer阶段输出数据value的类型,在本案例中就是单词总次数--IntWritable
 **/

public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable>
前两个Text, IntWritable对应前文Mapper的Text, IntWritable
后两个 Text, IntWritable对应要输出的数据类型

以上是关于MapReduce详解的主要内容,如果未能解决你的问题,请参考以下文章

MapReduce过程详解

MapReduce Shuffle过程详解

Hadoop[3] MapReduce理论详解

day08.MAPREDUCE详解大数据教程

Hadoop之Mapreduce详解

Hadoop MapReduce 一文详解MapReduce及工作机制