快捷搜索:  汽车  科技

mapreduce统计单词间隔不一样(一个单词统计的实例)

mapreduce统计单词间隔不一样(一个单词统计的实例)运行Job此处,key是一个单词,value 是词频。只需要将所有的value 相加,就可以得到这个单词的总的出现次数。实现Reduce 类这个类实现Reducer 接口中的reduce 方法 输入参数中的key values 是由Map 任务输出的中间结果,values 是一个Iterator 遍历这个Iterator 就可以得到属于同一个key 的所有value。

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

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

mapreduce统计单词间隔不一样(一个单词统计的实例)(1)

实例分析:WordCount

mapreduce统计单词间隔不一样(一个单词统计的实例)(2)

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

mapreduce统计单词间隔不一样(一个单词统计的实例)(3)

实现Reduce 类

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

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

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

mapreduce统计单词间隔不一样(一个单词统计的实例)(4)

运行Job

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

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

mapreduce统计单词间隔不一样(一个单词统计的实例)(5)

实验结果

mapreduce统计单词间隔不一样(一个单词统计的实例)(6)

猜您喜欢: