锁定老帖子 主题:eclipse 连接hadoop
精华帖 (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
<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/
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-12-06
我也在搞这个,头大了,我用的是hadoop 0.20.2 xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop, 网上的方法试遍了,你有没有什么需要注意的地方么?
|
|
返回顶楼 | |
发表时间:2012-12-06
smallbee 写道 我也在搞这个,头大了,我用的是hadoop 0.20.2 xp下虚拟机连接centos,xp下的eclipse一直连接不到hadoop, 网上的方法试遍了,你有没有什么需要注意的地方么?
我昨天已经连上了,要注意的是虚拟机里hadoop配置文件里边的ip 不要写localhost或者127.0.0.1,写上对外的ip。 然后eclipse里边注意参数的正确性就可以了。 你试试。 |
|
返回顶楼 | |
发表时间: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端口就可以了吧? |
|
返回顶楼 | |
发表时间:2012-12-06
虚拟机里的系统有没有打开相应端口?
|
|
返回顶楼 | |
发表时间: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的版本对应,网上说不对应的话也可能会出现莫名其妙的错误 |
|
返回顶楼 | |
发表时间: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 执行下就可以了 谢谢啦 |
|
返回顶楼 | |
发表时间: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没? |
|
返回顶楼 | |
发表时间:2012-12-07
连不上Hadoop我有经验,搞了一个星期。
要注意在Hadoop的配置文件上用192.168.X.X这样去配置地址,不能使用localhost或者127.0.0.1. Hadoop在Linux环境上跑会建立文件夹,需要操作文件夹的权限, 用chmod -R 777 #路径 授权执行权限。 |
|
返回顶楼 | |
发表时间: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下的。 |
|
返回顶楼 | |