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详解的主要内容,如果未能解决你的问题,请参考以下文章