Oracle VM VirtualBox 搭建 Hadoop 环境的经验

实体机:

OS : Win7

Eclipse : eclipse-java-mars-2-win32

内存 : 4G

虚拟机:

VirtualBox_5.0.10.4061_104061_Win.1448355141

ubuntu-14.04.4-desktop-i386.iso (内存:1G, 硬盘:20G)

hadoop : 2.7.2

感谢:

给力量的安装教程 http://www.powerxing.com/install-hadoop/

1. 虚拟机上网

实体机是通过域账户上网,需要在虚拟机 Ubuntu 架设网络代理。

Ubuntu 是通过 NAT 方式和实体机联系,baidu 后找到 ntlmap 做代理,怎么试都不行;后来找到 cntlm 做代理就行了。

建议网络代理设置不好的,可以试试 cntlm。这个和公司的代理服务器设置有关吧。

在 Firefox 中可以测试代理服务器是否能够域账户验证通过。

我是在 Firefox 能够上网后,通过 Ubuntu 网站下载 hadoop, ntlmap, cntlm 等程序安装。

2. 共享目录

按照介绍,可以配置好虚拟机和实体机的共享,但是开机就直接挂载好这个功能没有能够成功,无论是加在 profile, 还是 ~/.bashrc ,都不行。和磁盘分区的挂载有些不同。最后只好在桌面做了个脚本。

3. NameNode 在程序运行后就 down .

我是在一台机器上安装的伪分布 hadoop, 在本地运行程序后,一切都正常。放到 hadoop 分布环境后,运行到中间 map/reduce 步骤就报错误, output 也没有输出,hdfs 进入了 safeMode, console 的提示信息里要求释放资源。并且查看 jps, nameNode 消失了。

最后就加大虚拟机的内存,放大到 virsualBox 允许的大小,大概 1.8G .这样就好了。

4. Eclipse Hadoop Plugin

从网上下的 plugin ,我试验是不行的,按照教程在window端编译, hadoop 编译了两版 2.6.0 和 2.7.2 ,编译都成功了。使用的是 2.6.0 版,但是运行的hadoop是 2.7.2 版,没有问题啊,运气很好,也许以后会遇到问题? ;-)

配置后 eclipse 的 hadoop plugin, 创建 wordCount 工程,到运行时报告错误。

仔细的观察了这个错误的详细信息,看到user=Administrator, access=WRITE。这里的user其实是我当前系统(运行客户端的计算机的操作系统)的用户名,实际期望这里的user=Hadoop(hadoop是我的HADOOP上面的用户名)。

好不容易找到这篇文章:http://www.linuxidc.com/Linux/2014-08/105335p2.htm

解决方案:在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)。

5. 程序运行错误:Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.

http://www.bkjia.com/ASPjc/931209.html

a) 在Hadoop2的bin目录下没有winutils.exe

b) C:\Windows\System32下缺少hadoop.dll,把这个文件拷贝到C:\Windows\System32下面即可。

c) hadoop-2.6.0-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project,然后修改557行为return true.

6. 虚拟机网络设置为桥接模式

按照教程设置,DHCP获取动态IP 方式不行,我这边必须设置成静态IP . 也可能和 DHCP 的策略有关吧。

你可能感兴趣的:(Oracle VM VirtualBox 搭建 Hadoop 环境的经验)