win7下Eclipse连接虚拟机中的ubuntu下的hadoop

来源:互联网 发布:数据库原理第五版 编辑:程序博客网 时间:2024/05/21 09:12

在win7 + vmware + ubuntu10.04上重新搭建Hadoop(2.2.0和1.2.1)。

1.解决ubuntu10.04设置静态ip问题,参考:

http://www.tcxurun.cn/archives/49

http://www.cnblogs.com/objectorl/archive/2012/09/27/vmware-ubuntu-nat-static-ip-settings.html

主要更改文件/etc/network/interface和/etc/resolv.conf为:

最后设置静态地址为:192.168.145.200。设置完成后成功与win7互ping。

或者也有一种简单的做法:

把VM中的vmnet1或者vmnet8的dhcp地址设置一下,就可以限制了。比如:假如你的ip为192.168.144.1(pc上vmnet1)那么,虚拟机上可能

就是192.168.144.128到192.168.144.254。那么,只要改成192.168.144.129到192.168.144.130就可以了。然后,通过命令

sudo /etc/init.d/networking restart 重启一下,就ok了。)

2.之后的安装hadoop2.2.0,以及在win7上配置Eclipse参考以下资料:

http://blog.csdn.net/lzliu1314/article/details/23292611

http://blog.csdn.net/cybercode/article/details/7081552

http://february30thcf.iteye.com/blog/1768795

在进行hadoop配置的时候,使用上面设置的静态地址

core-site.xml配置为:

<configuration><property><name>fs.default.name</name><value>hdfs://192.168.145.200:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/xxx/hadoop/hadoop-1.2.1/tmp</value></property></configuration>
hdfs-site.xml配置为:

<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>
mapred-site.xml配置为:

<configuration><property><name>mapred.job.tracker</name><value>192.168.145.200:9001</value></property><property><name>dfs.permissions</name><value>false</value></property></configuration>
这样运行./bin/start-all.sh就可以启动hadoop服务了。

3. Win7环境下通过eclipse连接hadoop1.2.1时遭遇到权限问题(linux下无此问题)的解决办法

在win7下通过Eclipse编译Wordcount程序时,出现错误:

Exception in thread "main" java.io.IOException: Failed to set permissions of path: tmphadoop-AdministratormapredstagingAdministrator-519341271.staging to 0700

此时只需要修改org.apache.hadoop.fs.FileUtil文件并重新编译即可,方法如下:

转自:http://tech.ddvip.com/2014-06/1403068615211215.html

在eclipse中新建java工程,将hadoop相关jar包都导入工程。然后,到源码中拷贝src/core/org/apache/hadoop/fs/FileUtil.java文件,粘贴

到eclipse工程的src目录下,找到以下部分,注释掉checkReturnValue方法中的代码:

  private static void checkReturnValue(boolean rv, File p,                                        FsPermission permission                                       ) throws IOException {   /*  if (!rv) {      throw new IOException("Failed to set permissions of path: " + p +                             " to " +                             String.format("%04o", permission.toShort()));    }   */  }

到工程的输出目录找到class文件,会有两个class文件,因为FileUtil.java有内部类。将该class文件添加到hadoop-core-1.2.1.jar中对应的目

录,覆盖原文件,之后运行成功。注意:在Eclipse工程下的FileUtil.java文件中会有很多错误,但我们没有运行,所以不用管,我们只需要

找到生成的class文件,class一般在bin目录下。

还有方法是在hadoop源代码中修改FileUtil.java,之后编译hadoop源文件,这个方法在win7下没有成功。

参考:http://blog.csdn.net/longyi_java/article/details/8216542




0 0