美文网首页我爱编程
Oracle VM VirtualBox 搭建 Hadoop 环

Oracle VM VirtualBox 搭建 Hadoop 环

作者: 滔某 | 来源:发表于2018-02-28 15:22 被阅读0次

    实体机:

    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 环

        本文链接:https://www.haomeiwen.com/subject/bstixftx.html