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对应要输出的数据类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值