在windows下搭建hadoop工程(二)之 WordCount 作业测试

来源:互联网 发布:淘宝店铺动态在哪里看 编辑:程序博客网 时间:2024/06/16 19:50

四、WordCount.java测试

1、测试准备

wordcount.java程序是用来统计词频的,因此这里需要先建好输入文件。/test/input/
但是发现从eclipse上传到hdfs中的文件大小始终都为0

这里写图片描述

尝试使用hadoop shell的方式来创建文件。
在执行文件上传命令时会抛出异常:
File /tmp/wordcount/1.txt could only be replicated to 0 nodes, instead of 1。
于是使用命令jps查看启动进程,发现只有两个启动成功,

这里写图片描述

日志位于hadoop-1.0.0/logs/目录下。
查看错误日志:
2016-04-11 17:25:29,598 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in D:\tmp\hadoop-zhangmanyi\dfs\data: namenode namespaceID = 1744166126; datanode namespaceID = 1790925227

位于D:\tmp\hadoop-zhangmanyi\dfs\data\current\目录下的version文件中记录了namespaceID

这里写图片描述

于是执行一次停止脚本命令,再删除version文件(建议备份),然后hdfs格式化一次,再重新启动脚本。
hdfs中Browse the filesystem可以访问了,猜想之前应该是因为datanode没有启动成功的原因。

这里写图片描述

Jps查看的进程数还是显示两个进程。
但是查看日志应该是应该已经启动成功了的。不知道什么原因。

这里写图片描述

文件上传命令:

bin/hadoop fs -put 1.txt /test/input/

查看hdfs指定目录下的文件:

bin/hadoop fs -ls /test/input/

查看指定文件内容:

bin/hadoop fs -cat /test/input/1.txt

这里写图片描述

文件上传完成。再次在eclipse中进行配置。

这里写图片描述

2、新建MapReduce工程

New——other… ——MapReduce Project
这里写图片描述

这里写图片描述

3、准备MapReduce作业

在src中新建一个package,命名为org.apache.hadoop.examples。

这里写图片描述

将hadoop-1.0.0\src\examples\org\apache\hadoop\examples目录下wordcount.java程序粘贴到新建的package中。

这里写图片描述

4、 运行作业

数据方面已经准备完毕,输入文件目录为/test/input/,输出文件目录为/test/output/。
需要配置作业的输入/输出路径。右击wordcount.java,在菜单中一次点击Run As——Run Configurations…——Java Application,然后在新建对话框中输入作业的输入/输出路径。保存配置。
下面可以运行作业了,右击wordcount.java,在菜单中一次点击Run As——Run on hadoop。

这里写图片描述

这里写图片描述

问题解决了~!项目用的是主目录下的hadoop-core-1.0.0.jar,自己编译生成的hadoop-core-1.0.0.jar位于bulid目录下,因此需要将主目录下的文件覆盖掉即可~~。
还有在配置mapreduce作业时设置了输出文件目录是/test/output/,因此不需要自己提前建好目录,否则会报错。因此需要删除output目录后再执行。

这里写图片描述

执行完成,查看输出目录

这里写图片描述

这里写图片描述

0 0