编写mapreduce程序实现对输入文件的词频统计排序_MapReduce编程实例:单词计数

本文详细介绍了如何使用Hadoop MapReduce编写程序来实现对大量文件的单词计数。首先,任务是将输入文件中的单词拆分并统计,接着编写Map程序,对文本数据进行拆分并输出键值对。然后,编写Reduce程序,将Map阶段的结果进行合并求和,计算每个单词的总数。最后,通过main函数设置运行环境,并运行程序得到最终结果。
摘要由CSDN通过智能技术生成

本文介绍如何编写基本的 MapReduce 程序实现数据分析。本节代码是基于 Hadoop 2.7.3 开发的。

任务准备

单词计数(WordCount)的任务是对一组输入文档中的单词进行分别计数。假设文件的量比较大,每个文档又包含大量的单词,则无法使用传统的线性程序进行处理,而这类问题正是 MapReduce 可以发挥优势的地方。
在前面《MapReduce实例分析:单词计数》教程中已经介绍了用 MapReduce 实现单词计数的基本思路和具体执行过程。下面将介绍如何编写具体实现代码及如何运行程序。
首先,在本地创建 3 个文件:file00l、file002 和 file003,文件具体内容如表 1 所示。

1c5e033c35daf452c51a822d2d8accd8.png

再使用 HDFS 命令创建一个 input 文件目录。

hadoop fs -mkdir input

然后,把 file001、file002 和 file003 上传到 HDFS 中的 input 目录下。

hadoop fs -put file001 input
hadoop fs -put file002 input
hadoop fs -put file003 input

编写 MapReduce 程序的第一个任务就是编写 Map 程序。在单词计数任务中,Map 需要完成的任务就是把输入的文本数据按单词进行拆分,然后以特定的键值对的形式进行输出。

编写 Map 程序

Hadoop MapReduce 框架已经在类 Mapper 中实现了 Map 任务的基本功能。为了实现 Map 任务,开发者只需要继承类 Mapper,并实现该类的 Map 函数。
为实现单词计数的 Map 任务,首先为类 Mapper 设定好输入类型和输出类型。这里,Map 函数的输入是 <key,value> 形式,其中,key 是输入文件中一行的行号,value 是该行号对应的一行内容。
所以,Map 函数的输入类型为 <LongWritable,Text>。Map 函数的功能为完成文本分割工作,Map 函数的输出也是 <key,value> 形式,其中,key 是单词,value 为该单词出现的次数。所以,Map 函数的输出类型为 <Text,LongWritable>。
以下是单词计数程序的 Map 任务的实现代码。

public static class CoreMapper extends Mapper<Object,Text,Text
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值