hadoop入门搭windows eclipse环境时遇到的几个问题以及解决方案

本文详细介绍了在Windows环境下使用Eclipse运行Hadoop WordCount程序时遇到的问题及解决方法,包括配置Hadoop服务器IP、解决权限错误、正确设置Job运行地址、配置工程jar包路径和正确配置input和output路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学hadoop,总结下到windwos的eclipse能正常运行word count所遇到的几个问题。


1.在配置完locations后,想远程连接到hadoop的ubuntu 服务器, eclipse的左边Project Explorer下的DFS Location里显示错误:
Call to 172.16.35.2/172.16.35.2:9001 failed on connection exception: java.net.ConnectException: Connection refused: no further information。
原因是没有在linux里配置具体的hadoop服务器的IP地址。
解决方法:
网上查了不少资料,有说防火墙,有说配置出错,都不行。最后把core-site.xml、mapred-site.xml中配置的localhost都改成ubuntu的IP:172.16.35.2,就OK了!


2.能连接到服务器后又碰到了 HDFS客户端的权限错误:Permission denied。
就是权限问题。
解决方法,有3种,我用了第一种,也是最简单的。
1、在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)
2、将当前系统的帐号修改为hadoop
3、使用HDFS的命令行接口修改相应目录的权限,hadoop fs -chmod 777 /user,后面的/user是要上传文件的路径,不同的情况可能不一样,比如要上传的文件路径为hdfs://namenode/user/xxx.doc,则这样的修改可以,如果要上传的文件路径为hdfs://namenode/java/xxx.doc,则要修改的为hadoop fs -chmod 777 /java或者hadoop fs -chmod 777 /,java的那个需要先在HDFS里面建立Java目录,后面的这个是为根目录调整权限。
参考:http://www.huqiwen.com/2013/07/18/hdfs-permission-denied/


3.解决了权限问题后,开始建hadoop的WordCountProject,运行时又报了
ERROR security.UserGroupInformation: PriviledgedActionException as:root cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\root1229134948\.staging to 0700
原因是在eclipse的hadoop location里设置的"Map/Reduce Location"其中的配置不是完全起作用,而是在本地的磁盘上建立了文件,并尝试运行,显然是不行的。我们要让Eclipse提交作业到Hadoop集群上,所以我们这里手动添加Job运行地址。
解决方法:
在main函数的Configuration conf = new Configuration();后面加上conf.set("mapred.job.tracker", "172.16.35.2:9001");这句代码,


4.接着运行时又报了
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.hadoop.examples.WordCount$TokenizerMapper
原因是没在windows里配置工程jar包的路径
解决方法:
在main函数的Configuration conf = new Configuration();后面加上conf.set("mapred.jar", "D:/DJ/大数据/Hadoop/jar/mywordcount.jar"); 这句代码,mywordcount.jar为你打包的这个hadoop工程


5.最后运行又碰到了一个问题,
java.io.FileNotFoundException: File file:/D:/DJ/Program/eclipse/workspace/WordCountProject/input/capacity-scheduler.xml does not exist.
原因是我的input和output都配置错了,我是参照一篇教程配的,他可以我却不行,不知道怎么回事
解决方法:
input从 “input” 改为 “hdfs://172.16.35.2:9000/home/hadoop/hadoop-1.2.1/input”
output从 “output” 改为 “hdfs://172.16.35.2:9000/home/hadoop/hadoop-1.2.1/output”
另外如果output文件夹存在的话会报错,需要删除再运行。


至此,我在eclipse就能顺利运行hadoop程序了微笑


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值