您的位置:首页 > 编程语言 > Java开发

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

2014-07-02 15:13 281 查看
在win7 + vmware + ubuntu10.04上重新搭建Hadoop(2.2.0和1.2.1)。

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

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



/article/5884038.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参考以下资料:

/article/2158518.html



/article/9854244.html



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下没有成功。

参考:/article/10550250.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: