一个单词统计的实例,怎样通过MapReduce完成排序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个单词统计的实例,怎样通过MapReduce完成排序?相关的知识,希望对你有一定的参考价值。

假设有一批海量的数据,每个数据都是由26个字母组成的字符串,原始的数据集合是完全无序的,怎样通过MapReduce完成排序工作,使其有序(字典序)呢?


对原始的数据进行分割(Split),得到N个不同的数据分块:

技术分享


实例分析:WordCount


技术分享


这个类实现Mapper接口中的map 方法,输入参数中的value 是文本文件中的一行,利用StringTokenizer将这个字符串拆成单词,然后将输出结果<单词,1> 写入到org.apache.hadoop.mapred.OutputCollector中。


技术分享


实现Reduce 类


这个类实现Reducer 接口中的reduce 方法, 输入参数中的key, values 是由Map 任务输出的中间结果,


values 是一个Iterator, 遍历这个Iterator, 就可以得到属于同一个key 的所有value。


此处,key是一个单词,value 是词频。只需要将所有的value 相加,就可以得到这个单词的总的出现次数。


技术分享

运行Job


在Hadoop中一次计算任务称之为一个job, 可以通过一个JobConf对象设置如何运行这个job。


然后将JobConf对象作为参数,调用JobClient的runJob, 开始执行这个计算任务。


技术分享

实验结果

技术分享


本文出自 “中科院计算所培训” 博客,谢绝转载!

以上是关于一个单词统计的实例,怎样通过MapReduce完成排序?的主要内容,如果未能解决你的问题,请参考以下文章

手动实现一个单词统计MapReduce程序与过程原理分析

YARN框架&MapReduce框架

Hadoop_mapreduce统计文本单词

MapReduce实现单词统计

实验6:Mapreduce实例——WordCount

MapReduce实例