mapreduce倒排索引算法

mapreduce倒排索引算法

ID:39361148

大小:245.50 KB

页数:7页

时间:2019-07-01

mapreduce倒排索引算法_第1页
mapreduce倒排索引算法_第2页
mapreduce倒排索引算法_第3页
mapreduce倒排索引算法_第4页
mapreduce倒排索引算法_第5页
资源描述:

《mapreduce倒排索引算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、..Mapreduce程序设计报告姓名:学号:题目:莎士比亚文集倒排索引算法....1、实验环境联想pc机虚拟机:VM10.0操作系统:Centos6.4Hadoop版本:hadoop1.2.1Jdk版本:jdk-7u25Eclipse版本:eclipse-SDK-4.2.2-linux-gtk-x86_642、实验设计及源程序2.1实验说明对莎士比亚文集文档数据进行处理,对莎士比亚文集文档数据进行倒排索引处理,结果输出到指定文件2.2实验设计(1)InvertedIndexMapper类这个类实现Mapper接口中的map方法,输入参数中的value

2、是文本文件中的一行,利用正则表达式对数据进行处理,使文本中的非字母和数字符号转换成空格,然后利用StringTokenizer将这个字符串拆成单词,最后将输出结果,outkey为单词+单词所在的文件名,outvalue为1。publicstaticclassInvertedIndexMapperextendsMapper{privatefinalstaticIntWritableone=newIntWritable(1);publicvoidmap(Objectkey,Textvalue,Co

3、ntextcontext)throwsIOException,InterruptedException{//获取文件名以及预处理FileSplitfilesplit=(FileSplit)context.getInputSplit();Stringfilename=filesplit.getPath().getName();Stringline=value.toString();Strings;//利用正则表达式除去非数字和字母的符号Patternp=Pattern.compile("[^\w+]");Matcherm=p.matcher(line)

4、;Stringline2=m.replaceAll("");StringTokenizeritr=newStringTokenizer(line2);//按照空格对字符串进行划分while(itr.hasMoreTokens()){s=itr.nextToken().toLowerCase();if(!ls.contains(s)){Textfilename_num=newText(s+","+filename);//将单词和单词所在的文件名进行合并context.write(filename_num,one);}....}}}(2)InvertedI

5、ndexPartitioner类这个类是自定义的Partitioner类,通过复写getPartition()方法来自定义子集的分区key。将key按照分隔符进行分割,取key的前面部分进行分区,将相同的(即单词相同)分入同一个reduce。publicstaticclassInvertedIndexPartitionerextendsHashPartitioner{publicintgetPartition(Textkey,IntWritablevalue,intnumReduceTasks){Textkey1=n

6、ewText(key.toString().split(",")[0]);super.getPartition(key1,value,numReduceTasks);return0;}}(3)CombineReducer类这个类是在map输出结果之后输入reduce之前做的一个操作,是一个小型的reduce操作,这个操作可以减少reduce阶段的工作量,从而优化性能。publicstaticclassCombineReducerextendsReducer{publicvoidred

7、uce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{intsum=0;for(IntWritableval:values){sum+=val.get();}context.write(key,newIntWritable(sum));}}(4)InvertedIndexRedecuer类这个类实现了Reducer接口中的reduce方法,map的结果经过combine处理之后,数据输入reduce,key为单词+单词所

8、在文件名,value为单词的词频数,由于要实现倒排,所以key只能为单词,取key的第一部分即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。