论坛首页 综合技术论坛

eclipse 连接hadoop

浏览 16006 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-12-05  

由于我用的hadoop是1.0.4,网上大部分教程都是0.2.0的,有一些地方不能借鉴。

 

eclipse的hadoop的插件可以从网上下载,或者自己从下载的hadoop包里边编译而来(具体方法搜下即可)。

拿到插件后放到eclipse安装目录下的plugins目录下即可。然后重启eclipse。

 

用eclipse建立 DFS Locations后,发现不能连接到HDFS。

仔细检查了配置,没有错。

 

环境是:

虚拟机下的ubuntu 作为hadoop的伪分布式环境,ip 192.168.0.111。

win7下的eclipse 去连接HDFS,各种不能连上。

 

无奈在ubuntu下安装了eclipse,安装了插件。在创建Hadoop Location时,Map/Reduce Master 和 DFS Master的Host 设为localhost (127.0.0.1也可),成功连上。

 

然后修改了conf/core-site.xml


将<name>fs.default.name</name>

    <value>hdfs://localhost:9000</value>

 

的value配置改为<value>hdfs://192.168.0.111:9000</value>。

 

然后重启hadoop,win7下的eclipse 可以连接虚拟机下的HDFS。

但是此时虚拟机下的eclipse不能连接HDFS,再次将虚拟机的 Map/Reduce Master 和 DFS Master的Host 设为192.168.0.111,可以连上。

 

瞬间无语...  

平时我认为绑定了localhost 或者127.0.0.1会默认绑定本机的对外ip地址(也就是说本文中的192.168.0.111)。但是hadoop并没有这样做.

 

不知道是我理解有偏差还是hadoop真的做错了?

 

 

=========

处理掉上个问题之后,在虚拟机下的eclipse能成功执行操作hdfs的程序。但是在win7下的运行程序会报org.apache.hadoop.security.AccessControlException

解决方法参见

http://39382728.blog.163.com/blog/static/353600692011101051217731/

 

 

 

   发表时间:2012-12-06  
我也在搞这个,头大了,我用的是hadoop 0.20.2    xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop,   网上的方法试遍了,你有没有什么需要注意的地方么?
0 请登录后投票
   发表时间:2012-12-06  
smallbee 写道
我也在搞这个,头大了,我用的是hadoop 0.20.2    xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop,   网上的方法试遍了,你有没有什么需要注意的地方么?


我昨天已经连上了,要注意的是虚拟机里hadoop配置文件里边的ip 不要写localhost或者127.0.0.1,写上对外的ip。
然后eclipse里边注意参数的正确性就可以了。
你试试。
0 请登录后投票
   发表时间:2012-12-06  
ztianlong 写道
smallbee 写道
我也在搞这个,头大了,我用的是hadoop 0.20.2    xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop,   网上的方法试遍了,你有没有什么需要注意的地方么?


我昨天已经连上了,要注意的是虚拟机里hadoop配置文件里边的ip 不要写localhost或者127.0.0.1,写上对外的ip。
然后eclipse里边注意参数的正确性就可以了。
你试试。

我已经写成对外的IP了,还是连接不上,你的eclipse里面的配置,高级部分也要配置么?普通的两个Ip端口就可以了吧?
0 请登录后投票
   发表时间:2012-12-06  
虚拟机里的系统有没有打开相应端口?
0 请登录后投票
   发表时间:2012-12-06   最后修改:2012-12-06
smallbee 写道
ztianlong 写道
smallbee 写道
我也在搞这个,头大了,我用的是hadoop 0.20.2    xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop,   网上的方法试遍了,你有没有什么需要注意的地方么?


我昨天已经连上了,要注意的是虚拟机里hadoop配置文件里边的ip 不要写localhost或者127.0.0.1,写上对外的ip。
然后eclipse里边注意参数的正确性就可以了。
你试试。

我已经写成对外的IP了,还是连接不上,你的eclipse里面的配置,高级部分也要配置么?普通的两个Ip端口就可以了吧?


嗯,我就配了普通的两个Ip端口。
你关虚拟机的防火墙了么?
还有 能ping通虚拟机么?
另外看下hadoop 的log ,看是不是有Exception或者warn

你用虚拟机下的eclipse试一下 看能不能连上。
还有 eclipse插件的版本要和hadoop的版本对应,网上说不对应的话也可能会出现莫名其妙的错误
0 请登录后投票
   发表时间:2012-12-07  
ztianlong 写道
smallbee 写道
ztianlong 写道
smallbee 写道
我也在搞这个,头大了,我用的是hadoop 0.20.2    xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop,   网上的方法试遍了,你有没有什么需要注意的地方么?


我昨天已经连上了,要注意的是虚拟机里hadoop配置文件里边的ip 不要写localhost或者127.0.0.1,写上对外的ip。
然后eclipse里边注意参数的正确性就可以了。
你试试。

我已经写成对外的IP了,还是连接不上,你的eclipse里面的配置,高级部分也要配置么?普通的两个Ip端口就可以了吧?


嗯,我就配了普通的两个Ip端口。
你关虚拟机的防火墙了么?
还有 能ping通虚拟机么?
另外看下hadoop 的log ,看是不是有Exception或者warn

你用虚拟机下的eclipse试一下 看能不能连上。
还有 eclipse插件的版本要和hadoop的版本对应,网上说不对应的话也可能会出现莫名其妙的错误

果然是虚拟机端口没有开啊,搞了N久了。 

/etc/init.d/iptables stop 执行下就可以了
谢谢啦
0 请登录后投票
   发表时间:2012-12-07  
运行wordcount.java报错。
12/12/07 09:33:35 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
Exception in thread "main" java.io.IOException: Cannot run program "chmod": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:149)
at org.apache.hadoop.util.Shell.run(Shell.java:134)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:286)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:354)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:337)
at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:481)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:473)
at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:280)
at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:266)
at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:573)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:761)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
at org.apache.hadoop.examples.WordCount.main(WordCount.java:67)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 14 more
知道是什么原因么?
网上说
原因:安装cygwin,而且需要设置"cygwin\bin"到环境变量PATH中,使用eclipse-plugin提交mapreduce程序,必须在window端安装cygwin,并将cygwin\bin"到环境变量PATH中,否则不行。

我已经加入了这个PATH,还是不行,你没有报错么?装过CYGWIN没?
0 请登录后投票
   发表时间:2012-12-07  
连不上Hadoop我有经验,搞了一个星期。
要注意在Hadoop的配置文件上用192.168.X.X这样去配置地址,不能使用localhost或者127.0.0.1.

Hadoop在Linux环境上跑会建立文件夹,需要操作文件夹的权限,
用chmod -R 777 #路径 授权执行权限。
0 请登录后投票
   发表时间:2012-12-09  
smallbee 写道
运行wordcount.java报错。
12/12/07 09:33:35 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
Exception in thread "main" java.io.IOException: Cannot run program "chmod": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:149)
at org.apache.hadoop.util.Shell.run(Shell.java:134)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:286)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:354)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:337)
at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:481)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:473)
at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:280)
at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:266)
at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:573)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:761)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
at org.apache.hadoop.examples.WordCount.main(WordCount.java:67)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 14 more
知道是什么原因么?
网上说
原因:安装cygwin,而且需要设置"cygwin\bin"到环境变量PATH中,使用eclipse-plugin提交mapreduce程序,必须在window端安装cygwin,并将cygwin\bin"到环境变量PATH中,否则不行。

我已经加入了这个PATH,还是不行,你没有报错么?装过CYGWIN没?



不好意思,我没有装过cygwin,我的hadoop环境是在linux下的。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics