说实话,写这种安装文档一点儿意思没有,本来不想写,因为百度上能搜索到的资料有限,有的是N年前的版本,有的对遇到的坑一律不谈,貌似安装过程有如神注。这让我等屌丝如何搞得懂?况且国内的学术氛围不敢恭维,屌丝虾米提的问题贴回答很少有形成闭环的,到底问题是如何解决的,亦或者没解决,不得而知。出于愤青,把自己遇到的坑一一写下来,给我等屌丝开条道。
今天先踩下虚拟机的坑。
先说下我的环境:
- 本地操作系统(下面统称“宿主”)Windows10
- VirtualBox-5.1.22-115126-Win
- CentOS-6.5-x86_64-minimal.iso
- Ambari 2.5.1.0
- Java version "1.8.0_141"
安装虚拟机的过程就不用说了,完成后新建虚拟机。这里要重点说下遇到的坑:
-
1. 在为虚拟机安装CentOS时是否有64位的选项,如图:
如果没有,恭喜你踩到第一个坑!网上的方法有很多,搜“vbox 没有64位选项” 一搜一大把,要改BIOS什么的,其他操作系统没试过,如果是用的windows10,那些方法然并卵,正确的做法是“关闭windows的Hyper功能”,把有关“Hyper”的服务停掉,然后重启系统。
-
2. 虚拟机分配多大的磁盘空间合适?
答:对于用来装Ambari Server的虚拟机不少于20G,越大越好,除非你想在磁盘空间不够时扩容!笔者刚开始只分配了20G,后来扩容到25G还捉襟见肘。
-
3. 内存多大合适?
答:至少16G,越多越好,你不想只跑个Hello World就行了吧?
-
4. 大坑来了:虚拟机如何配置网络?
笔者创建了三台虚拟机,其hostname分别是:
master.example.com
slaver1.example.com
slaver2.example.com
现在我们的需求是三台虚拟机既能上网(需要用yum install)又能彼此ping通,同时还可以在宿主鸡上使用类似Xshell 或者putty等客户端访问三台机器,如何破?
虚拟机的三种上网方式:NAT,Host-Only,Bridged 都是被阉割过的,要么能上网,要么不能上网但内网直接可以Ping通,要么只能Ping通宿主机,不能Ping通其他内网机器,要么只能........(此处应该流汗)。也可能聪明的你已经想到对策了:双网卡!!!!
对,你没有听错,双网卡,双网卡,双网卡! 一个网卡用NAT,一个网卡用Host-Only。如何做:
-
在确认虚拟机状态为“关闭”的情况下, 在虚拟机的设置中,点击“网络” ,依次配置“网卡1”和“网卡2”的连接方式为“NAT”和“Host-Only” ,如图:
-
配置完成后启动虚拟机,用 ifconfig -a 命令查看网卡情况
正常情况下,可以看到有两个网卡,eth0和eth1(你的网卡名称可能不是eth0或者eth1,没关系),还有个类似lo的,不用管这个。如果显示的信息没有两个网卡,恭喜你又遇到一个坑,那应该:
- service network restart (重启网卡,如果还看不到,继续做第二步)
- reboot (重启该虚拟机,如果还看不到,继续第三步)
查看网卡的Mac地址:cat /etc/udev/rules.d/70-persistent-net.rules,
这是个配置文件,里面记录了网卡设备的Mac地址和对应的网卡名称,如果你用ifconfig命令已经能看到其中之一的网卡,比如eth0,那么需要将另外一个网卡(eth1)的Mac地址Copy下来,然后在/etc/sysconfig/network-scripts 目录下新建一个类似ifcfg-eth0的文件(比如新建ifcfg-eth1),并修改文件中的“Device”,“HWADDR”,“Name”,如下图:
- 完成3后,service network restart 重启网络服务,再用ifconfig -a 检查是否有两个网卡,且地址有个是内网地址,形如:192.168.XXX.XXX,而另一个是外网地址,如果都有,恭喜你这个大坑被你越过了。
你可以ping www.baidu.com看是否可以上网,以及能够和其他虚拟机互ping(此时默认其他虚拟机已经如上配置好了双网卡)
- 如果还是没不行,请拨打检查院电话:)
至此虚拟机的坑差不多被踩完了,我遇到的坑可能与你的不同,欢迎一起交流。企鹅号:405578929
完成虚拟机配置后,就可以前往下一个坑了:
踩坑实录2
欢迎转载,但需要说明出处,谢谢理解!