VirtualBox+Ubuntu16.04.4+Hadoop-2.6.5搭建

搭建这个环境真的是一把辛酸泪,不说了。赶紧记一下遇到的坑,防止之后再落入。

前提:搭环境之前一定要先去了解一下hadoop大致的工作原理,懂得它的一些专业名词,比如JobTracker,TaskTracker,DataNode,NameNode等等,以及他们的作用,只有这样才不会一头雾水,我就是一开始就直接搭环境,一脸懵逼,最后只只能去恶补原理。我是用完全分布的方式来搭建hadoop的环境

1.环境:一共用了三个虚拟机,一个担任namenode的角色,两个担任DataNode的角色。因为hadoop的工作环境是Linux,所以我们虚拟机的系统也选择了Ubuntu,当然其他Linux系统也是可以的,比如centOS。下面就开始安装虚拟机了。我最初选择的是VMware来安装虚拟机,刚开始并没有选择破解版的,因为看了网上有很多许可证秘钥,所以就很放心的去安装了,结果,那些许可证秘钥全都没法用!!!我简直太天真,too young too simple 之后又下了破解版的VMware,安装好之后,这时又出现了问题,因为实验室连的网是学校的校园网,所以安装了锐捷,结果这个曾经被我认为“完美”的软件真的完美的结束了我的联网模式。安装完VMware后,网络连接下回多了两个适配器,分别是VMnet1和VMnet8,这时锐捷会断开认证,并提示一台主机只能有一个ip地址,所有我只能默默的把这两张网卡都禁用了。为了能让虚拟机和宿主机以及虚拟机之间都能相互ping通且虚拟机可以上网,我们选择的只能是桥接模式,因为NAT模式不会给虚拟机分配独立的ip地址,它只能保证虚拟机能上网,而且锐捷这个软件还会把服务中的NAT给停止了,就算打开也只是维持60秒左右,所以啊,能装mentohust千万不要装锐捷。说干就干,于是风风火火的在VMware下装了三个虚拟机,参考网上的资料,开始配置。现在又开始遇坑了,为了能上网,虚拟机的IP必须和宿主机的IP在同一网段下,子网掩码、网关、DNS和宿主机保持一致,这个时候问题来了,我们实验室机子的子网掩码是255.255.255.252,也就是最后8位是11111100,宿主机的ip是172.26.30.214,网关是172.26.30.213,所以,问题来了,没有足够的IP可以供我选择呀,可是我想着先ping通,于是就选择了172.26.30.212作为其中一台虚拟机的ip,其他的都和物理机的设置一样,然后开始ping,结果怎么也ping不成功,ping谁都不行,花了一晚上改来改去,就是ping不同,虚拟网卡重启了无数次,虚拟机重启了无数次,反正就是不行,最后还找了大神来帮忙,大神也只能摇摇头,让我换成virtualbox来试试。带着郁闷回宿舍,洗洗睡了。第二天,到实验室又开始如火如荼的用VirtualBox来搭环境,VirtualBox是开源的,不需要破解,还是开源的给力呀,锐捷连管都不管它。因为寝室的另一个同学之前用的是CentOS的系统,加之前一天晚上的失望,所以我决定抛弃Ubuntu,开始用CentOS+VirtualBox,然后,又开始出现了问题,我刚开始用的是VBox5.0.24的版本,然后用它安装了centOS,居然启动不了,一启动就会报错,我把错误放到度娘去问,按网上的回答来改,可是还是不奏效。哎,我无奈的摇摇头。放一边,不管了。第三天,我重启了电脑,平时实验室电脑一般不关,想着没准重启就好了,重新打开vbox后,还是无法启动虚拟机,这时vbox跳出新的版本更新,我想着那就更新吧,既然之前的不行,没准新的版本的就可以了。于是就安装了新的版本的virtualbox,然后又安装了centOS,可以了。终于启动了。照着别人的一篇博客,我安装的centOS是无图形化界面的,要知道对于Linux,我几乎不太明白,加之这种无图形化界面的操作系统,我更是欲罢不能呀。但是还是硬着头皮配了网络,这次能和主机ping通了,但是还是不能上网。于是,我想着只要虚拟机相互之间能ping通就行,物理机不管它了。最初安装好虚拟机的时候用的是NAT模式,这样虚拟机可以上网,先在有网的情况下把vim ,ssh等一些需要的软件都给安装了,如果按照物理机的子网掩码,我的ip是不够的,因为已经放弃在桥接模式下上网了,所以我用的子网掩码是255.255.255.ip地址也是随便设置的,在虚拟机下安装了增强功能,这里也有很大的坑,(安装完一定要重启虚拟机,否则没有效果)用了共享文件,安装完Java环境以及hadoop环境,最后,克隆出另外两个虚拟机。ok

2.ssh实现无秘钥登录,这个主要是针对namenode所在的那台虚拟机而言的,namenode在启动时需要登录到另外两台机子,启动datanode,这里,我实在namenode主机生成公钥后,然后把公钥写到另外两台机子authorized_key文件下,因为之前我打开了id_rsa.pub看,一不小心可能加了空格之类的,导致最后ssh无法成功,之后又重新复制了一次,最后成功了。

3.启动,启动hadoop之后,发现我的namenode没有,这时我们要去看安装目录下的log目录,看其中的log文件,因为这个是按时间来写的,所以我们直接打开,拉倒最后看,找Erro ,Fatal这样的字眼,最后发现的问题是 namenode not fomat,其实我也觉得很奇怪,我之前明明已经format了一次,而且是成功的,但是既然日志都这么说了,我就又重新format 了一次 ,这次,真的成功了。不容易不容易。最后我用它执行了hadoop中的单词计数的那个样例,成功执行出结果。

总结:虚拟机分配的硬盘和内存太小,导致运行很卡。还是要不怕错误,不懂的问题要多问,多思考新的解决方案,不要一根筋。之后就要真正进入hadoop的学习阶段了,嘻嘻~

阅读更多
文章标签: hadoop linux
个人分类: hadoop
想对作者说点什么? 我来说一句

Rest服务的搭建与Jersey

2011年07月11日 98KB 下载

Jersey关于搭建Rest服务的案例

2011年07月13日 1KB 下载

Jersey框架服务搭建Rest

2011年07月08日 3.24MB 下载

ssm框架的搭建

2017年09月05日 37KB 下载

HADOOP学习笔记

2010年03月30日 50KB 下载

搭建SSH必须的包,包括所有

2010年04月02日 11.9MB 下载

negios搭建

2017年10月26日 15KB 下载

yum搭建及应用 yum搭建及应用

2010年09月02日 35KB 下载

struts2搭建

2011年11月17日 819KB 下载

没有更多推荐了,返回首页

不良信息举报

VirtualBox+Ubuntu16.04.4+Hadoop-2.6.5搭建

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭