数据存储实验5-编写MapReduce程序实现词频统计.doc(实验报告).doc
- 文档编号:30809361
- 上传时间:2024-01-30
- 格式:DOC
- 页数:5
- 大小:779KB
数据存储实验5-编写MapReduce程序实现词频统计.doc(实验报告).doc
《数据存储实验5-编写MapReduce程序实现词频统计.doc(实验报告).doc》由会员分享,可在线阅读,更多相关《数据存储实验5-编写MapReduce程序实现词频统计.doc(实验报告).doc(5页珍藏版)》请在冰豆网上搜索。
《数据存储技术》实验5编写MapReduce程序实现词频统计
《数据存储技术》
实验5
编写MapReduce程序实现词频统计
1作业题目
熟悉MapReduce编程。
2作业目的
1. 理解Hadoop中MapReduce模块的处理逻辑
2. 熟悉MapReduce编程
3实验平台
操作系统:
Linux
工具:
Eclipse或者IntellijIdea等JavaIDE
4实验内容和要求
1.在电脑上新建文件夹input,并input文件夹中创建三个文本文件:
file1.txt,file2.txt,file3.txt
三个文本文件的内容分别是:
file1.txt:
bigdataapplicationsciencebigdatahadoopmapreducescience
file2.txt:
mapreducesciencebigdatahadoop
file3.txt:
hadoopmapreducewordcountcomputerscience
2.启动hadoop伪分布式,将input文件夹上传到HDFS上
3.编写mapreduce程序,实现单词出现次数统计。
统计结果保存到hdfs的output文件夹。
packageorg.apache.hadoop.examples;
importjava.io.IOException;
importjava.util.Iterator;
importjava.util.StringTokenizer;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Job;
importorg.apache.hadoop.mapreduce.Mapper;
importorg.apache.hadoop.mapreduce.Reducer;
importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;
importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
importorg.apache.hadoop.util.GenericOptionsParser;
publicclassWordCount{
publicWordCount(){
}
publicstaticvoidmain(String[]args)throwsException{
Configurationconf=newConfiguration();
String[]otherArgs=(newGenericOptionsParser(conf,args)).getRemainingArgs();
if(otherArgs.length<2){
System.err.println("Usage:
wordcount
System.exit
(2);
}
Jobjob=Job.getInstance(conf,"wordcount");
job.setJarByClass(WordCount.class);
job.setMapperClass(WordCount.TokenizerMapper.class);
job.setCombinerClass(WordCount.IntSumReducer.class);
job.setReducerClass(WordCount.IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
for(inti=0;i FileInputFormat.addInputPath(job,newPath(otherArgs[i])); } FileOutputFormat.setOutputPath(job,newPath(otherArgs[otherArgs.length-1])); System.exit(job.waitForCompletion(true)? 0: 1); } publicstaticclassIntSumReducerextendsReducer privateIntWritableresult=newIntWritable(); publicIntSumReducer(){ } publicvoidreduce(Textkey,Iterable intsum=0; IntWritableval; for(Iteratori$=values.iterator();i$.hasNext();sum+=val.get()){ val=(IntWritable)i$.next(); } this.result.set(sum); context.write(key,this.result); } } publicstaticclassTokenizerMapperextendsMapper privatestaticfinalIntWritableone=newIntWritable (1); privateTextword=newText(); publicTokenizerMapper(){ } publicvoidmap(Objectkey,Textvalue,Mapper StringTokenizeritr=newStringTokenizer(value.toString()); while(itr.hasMoreTokens()){ this.word.set(itr.nextToken()); context.write(this.word,one); } } } } 4.获取统计结果(给出截图或相关结果数据) 5实验报告 《数据存储技术》实验报告 题目: 编写MapReduce程序实现词频统计 姓名: 日期: 2021.5.19 实验环境: 操作系统: Linux 工具: Eclipse或者IntellijIdea等JavaIDE 实验内容与完成情况: 1.在电脑上新建文件夹input,并input文件夹中创建三个文本文件: file1.txt,file2.txt,file3.txt 2.启动hadoop伪分布式,将input文件夹上传到HDFS上 3.编写mapreduce程序,实现单词出现次数统计。 统计结果保存到hdfs的output文件夹。 4.获取统计结果(给出截图或相关结果数据) 均已完成 出现的问题: 无 解决方案(列出遇到的问题和解决办法,列出没有解决的问题): 无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 存储 实验 编写 MapReduce 程序 实现 词频 统计 doc 报告