源码和数据集请点赞关注收藏后评论区留言私信~~~
一、统计单词出现次数
单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版“Hello World。其主要功能是统计一系列文本文件中每个单词出现的次数
程序解析
首先MapReduce将文件拆分成splits,由于测试用的文件较小,只有二行文字,所以每个文件为一个split,并将文件按行分割形成<key, value>对,如下图所示,这一步由MapReduce框架自动完成,其中偏移量(即key值)包括了回车所占的字符数(Windows和Linux环境会不同)
(2)将分割好的<key, value>对交给用户定义的Map方法进行处理,生成新的<key, value>对
(3)得到Map方法输出的<key,value>对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果
(4)Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的Reduce方法进行处理,得到新的<key,value>对,并作为WordCount的输出结果
主要编写Map和Reduce函数.这个Map函数使用StringTokenizer函数对字符串进行分隔,通过write方法把单词存入word中 k/v来自于Map函数中的context,可能经过了进一步处理(combiner),同样通过context输出
运行程序后通过浏