08hadoop完全分布式安装第八步MapReduce查行数.docx
- 文档编号:28665992
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:9
- 大小:651.36KB
08hadoop完全分布式安装第八步MapReduce查行数.docx
《08hadoop完全分布式安装第八步MapReduce查行数.docx》由会员分享,可在线阅读,更多相关《08hadoop完全分布式安装第八步MapReduce查行数.docx(9页珍藏版)》请在冰豆网上搜索。
08hadoop完全分布式安装第八步MapReduce查行数
实验八MapReduce查行数
一、实验题目
开发MapReduce程序
二、实验要求
对于各种形式的文本分析而言,LineCount应用程序是一个不可或缺的统计工具。
想分析文本,我们必须知道文本中的行数、字数和单词数。
此外,这些参数的出现频率也有助于我们对数(值)进行分类。
本次实验练习中,我们将借助Eclipse集成开发环境(IDE)编写MapReduce程序,以统计给定文本文件的行数。
三、操作步骤
1.在Ubuntu上安装Eclipse、Hadoop和JDK(虚拟机里已经安装了这些环境);
2.打开Eclipse,创建一个新的JavaProject;
3.选择“ConfigureBuildPath”,选择Library标签,AddExternalJARs;
4.选择Apache/Hadoop1.0.4文件夹,选择下列jar文件:
commons-collections-3.2.1.jar
commons-configuration-1.6.jar
commons-httpclient-3.0.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
commons-logging-api-1.0.4.jar
jackson-core-asl-1.8.8.jar
jackson-mapper-asl-1.8.8.jar
log4j-1.2.15.jar
Hadoop-core-1.0.4.jar
5.创建“com.trendwise.java”包,并在包中创建“LineCount”类(可使用附件文件);
6.将LineCount项目导出为Jar文件;
7.启动Hadoop,复制loaddata1文件到“/home/wcbdd/Desktop/loaddata1”;
8.访问localhost:
50070,利用文件选择器选择选择loaddata1;
9.运行MapReduce程序,“bin/hadoopjar/home/wcbdd/linecount.jarcom.trendwise.java.linecount/LOAD/home/wcbdd/workspace/BIGmb”;
10.打开浏览器查看LineCount结果;
11.复制结果到本地文件output.txt;
四、实验结果
首先,建立一个JavaProject。
在建立时,要将默认的Java1.7改为Java1.6.
新建JavaClass,并且添加jar。
需要将Hadoop文件夹下的以及lib文件夹下的所有jar均添加进去。
输入代码:
[java] viewplain copy
1.//This wraps the modules into a single programpackage com.trendwise.java; //Package name
2.import java.io.IOException;
3.import java.util.Iterator;
4.import org.apache.hadoop.fs.Path;
5.import org.apache.hadoop.io.IntWritable;
6.import org.apache.hadoop.io.LongWritable;
7.import org.apache.hadoop.io.Text;
8.import org.apache.hadoop.mapred.FileInputFormat;
9.import org.apache.hadoop.mapred.FileOutputFormat;
10.import org.apache.hadoop.mapred.JobClient;
11.import org.apache.hadoop.mapred.JobConf;
12.import org.apache.hadoop.mapred.MapReduceBase;
13.import org.apache.hadoop.mapred.Mapper;
14.import org.apache.hadoop.mapred.OutputCollector;
15.import org.apache.hadoop.mapred.Reducer;
16.import org.apache.hadoop.mapred.Reporter;
17.import org.apache.hadoop.mapred.TextInputFormat;
18.import org.apache.hadoop.mapred.TextOutputFormat;
19.public class LineCount {
20. public static class Map extends MapReduceBase implements Mapper
21. private final static IntWritable obj = new IntWritable
(1);
22. private Text words = new Text("Total Lines");
23. public void map(LongWritable key, Text value, OutputCollector
24. Reporter reporter) throws IOException {
25. output.collect(words, obj);
26. }
27. }
28.
29.public static class Reduce extends MapReduceBase implements
30. Reducer
31. public void reduce(Text key, Iterator
32. OutputCollector
33. throws IOException {
34. int sum1 = 0;
35. while (values.hasNext()) {
36. sum1 += values.next().get();
37. }
38. output.collect(key, new IntWritable(sum1));
39. }
40.}
41.
42.public static void main(String[] args) throws Exception {
43. JobConf config = new JobConf(LineCount.class);
44. config.setJobName("LineCount");
45. config.setOutputKeyClass(Text.class);
46. config.setOutputValueClass(IntWritable.class);
47. config.setMapperClass(Map.class);
48. config.setCombinerClass(Reduce.class);
49. config.setReducerClass(Reduce.class);
50. config.setInputFormat(TextInputFormat.class);
51. config.setOutputFormat(TextOutputFormat.class);
52. FileInputFormat.setInputPaths(config, new Path(args[0]));
53. FileOutputFormat.setOutputPath(config, new Path(args[1]));
54. JobClient.runJob(config);
55.}
56.}
上述代码,map部分负责从原始数据中提取感兴趣的内容,在本例中,也就是行数。
reduce部分不择将map获取的数据进行整合,也就是求出中行数,并且输出。
main部分起到drive的作用。
编写完代码后,将其导出为jar文件,方便运行使用。
将文件从本地拷贝到HDFS中:
由于hadoop在安全模式下是不能创建文件夹的,因此需要将安全模式关闭。
可以看到关闭后,文件成功拷贝到HDFS中了。
接下来就是启动hadoop,运行MapReduce程序了。
打开浏览器,查看LineCount的运行结果
将文件从hdfs中导出
查看output1.text
可以看到结果和浏览器中查看的结果是一致的。
需要注意的是,文档中给的很多路径是错误的,包括LineCount小写了,以及导出文件时,路径给的是源文件的路径,而不是处理之后的路径等。
总结下就是,文档可以帮助我们快速入门,但是过于依靠文档,会频繁出错,还是需要加深自己对这个实验过程的理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 08 hadoop完全分布式安装第八步MapReduce查行数 hadoop 完全 分布式 安装 第八 MapReduce 行数
![提示](https://static.bdocx.com/images/bang_tan.gif)