WordCount示例编写在一堆给定的文本文件中统计输出每一个单词出现的次数

本文档详细介绍了如何使用Hadoop的WordCount示例来统计文本文件中每个单词出现的次数。首先定义了mapper类,包括keyin、keyout、valuein、valueout的数据类型,并解释了它们的含义。接着介绍了reducer类,以及reduce方法如何对mapper输出的数据进行处理,以计算每个单词的总次数。最后,提到了主类中配置的mapper、reducer类和输入输出路径。
摘要由CSDN通过智能技术生成

一.定义一个mapper类
1.首先要定义四个泛型的类型
keyin:LongWritable keyout:Text
valuein:Text valueout:IntWritable

Mapper<keyin, keyout,valuein,valueout>
keyin:表示数据输入的时候key的数据类型,在默认的读取数据组件下,叫InputFormat, 它的行为是一行一行的读取待处理的数据,读取一行,返回一行给我们的mr程序 [在这种情况下,keyin就表示每一行的起始偏移量,它的数据类型是Long]
valuein:表示数据输入的时候value的数据类型, [在默认的读取数据组件下,valuein就表示读取的这一行内容,因此数据类型是String]
keyout:表示mapper数据输出的时候key的数据类型 [在本案例中,输出的key是单词,因此数据类型是String]
valueout:表示mapper数据输出的时候value的数据类型 [在本案例中,输出的value是单词的次数,因此数据类型是Integer]
这里所说的数据类型String,Long都是jdk自带的类型,在序列化的时候,效率低下,因此hadoop自己封装一套数据类型
long---->LongWritable
String—>Text
Integer—>IntWritable
null—>NullWritable

这里就是mapper阶段具体的业务逻辑实现方法,该方法的调用取决于读取数据的组件有没有给mr传入数据,如果有的话,没传入一个<k,v>时,该方法就会被调用一次

public class WordCountMap extends Mapper<LongWritable,Text,Text,IntWritable> {
   //重写map方法
    @Override
    protected void map(LongWritable key, Text value, Context con
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值