WordCount案例--mapreduce编写(mr类型、map方法、reduce方法、Job方法) 详细注解

按我们上传一个文件,统计该文件里面的所有单词个数为例进行讲解

一、编程规范:

在这里插入图片描述

二、Mapper阶段业务逻辑实现

MyMapper类继承的Mapper方法的四个参数的类型解析:

1、KEYIN:表示数据输入的时候key数据类型,在默认的读取数据组件下,叫InputFormat,它的行为是一行一行读取待处理的数据,读取一行,返回一行给我们的mr程序,在这种情况下,keyin就表示一行的起始偏移量  因始数据的类型是long
2、VALUEIN:表述数据输入的时候value的数据类型,在默认的读取数据组件下 valuein就表示读取的这一行内容 因始读取的数据类型是String  
3、KEYOUT:表示mapper数据输出的时候key的数据类型,在本案例当中,输出的key是单词,因始类型是String
4、VALUEOUT表示mapper 数据输出的时候value的数据类型 在本案例当中,输出的key是单词的次数,因此数据类型是Integer
public class MyMapper extends Mapper<keyin, valuein, keyout, valueout>

这里所说的数据类型long、String都是jdk自带的类型,在序列化的时候,效率低下,因此hadoop自己封装一套数据类型,如下:

long---->LongWritable
String---->Text
Integer---->Intwritable
null-->NullWritable

//上面已经解析为啥使用LongWritable、Text、IntWritable
public class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
   
//这里就是mapreduce程序,mapper阶段业务逻辑实现方法,该方法的调用取决于读取数据的组件有没有给Mr传入数据,如果有,每传入一个《k,v》对  该方法就调用一次
//这里LongWritable key 表示传入的keyin 类型是LongWritable
//Text value 表示传入的valuein 类型是Text
   public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
   
    //拿到传入进来的一行内容,把数据类型转化为String
    String line=value.
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值