Windows7下eclipse调试Fedora虚拟机的hadoop+hbase伪分布式(第五节)

五、Eclipse运行WordCount项目:

1.新建WordCount项目
File-->New-->Other-->Map/Reduce Project  项目名可以随便取,如WordCount 
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。
2.上传模拟数据文件夹 
为了运行程序,我们需要一个输入的文件夹,和输出的文件夹。
A)在本地新建word.txt 内容如下:

mapreduce java hadoop hbase

close java python c

java open javascript 

helloworld hadoop

B)通过hadoop的命令在HDFS上创建/tmp/workcount目录,命令如下:bin/hadoop fs -mkdir /tmp/wordcount

C)通过copyFromLocal命令把本地的word.txt复制到HDFS上,命令如下:

bin/hadoop fs -copyFromLocal /home/grid/word.txt  /tmp/wordcount/word.txt

3.运行Wordcount项目

A)在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations 
B)在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount 
C)配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:

hdfs://192.168.11.129:8020/tmp/wordcount/word.txt hdfs://192.168.11.129:8020/tmp/wordcount/out

如果运行时报java.lang.OutOfMemoryError: Java heap space配置VM arguments(Program arguments)

-Xms512m -Xmx1024m -XX:MaxPermSize=256m

 4.点击Run,运行程序
点击Run,运行程序,过段时间将运行完成,等运行结束后,查看运行结果,使用命令: bin/hadoop fs -ls /tmp/wordcount/out查看例子的输出结果。

发现有两个文件夹和一个文件,使用命令查看part-r-00000文件:

bin/hadoop fs -cat /tmp/wordcount/out/part-r-00000可以查看运行结果。

如果这一步有问题,请看最后的注意事项(2

注意事项:

1eclipse可能会报无法连接的错:"Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException

经过查询,是由于hadoopeclipse插件里面缺少了一些包,按照这篇文章的说明修改包后,重新运行成功。

2)可能会报错:

12/04/24 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
    at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
这是由于Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。

解决方法是修改src\core\org\apache\hadoop\fs\RawLocalFileSystem.java,注释掉 checkReturnValue(有些粗暴,在Window下,可以不用检查)

1

2

3

4

5

6

7

private void checkReturnValue(boolean rv, Path p, FsPermission permission) 

  throws IOException {

 /*if (!rv) {

    throw new IOException("Failed to set permissions of path: " + p + " to " + 

                            String.format("%04o", permission.toShort()));

   }*/

}

然后重新编译、打包 hadoop-core-1.21.21.0.jar,再次运行即可成功。关于这个重新编译hadoop的方法我上面的压缩包里也有教程文档。

目前为止,还没有使用到hbase分布式数据库,后续我们继续研究相关方面内容。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值