在日常学习、工作当中,我们经常需要用到分布式集群环境,如zookeeper集群、redis集群、大数据集群等,而通常并没有那么多的物理机器可以使用,因此,通过虚拟机搭建一套分布式集群环境以供开发和测试,是一个不错的选择。本文讲述的,就是如何通过vmware搭建一套虚拟机集群基础环境,以便于后续搭建各种分布式组件的集群。
1、硬件环境
既然是安装虚拟机,物理机本身硬件配置最好不要太低,否则到时虚拟机、本机都卡就尴尬了。笔者测试安装的
环境是Windows7 64位、I3 6代12G内存台式机。
2、软件安装包
vmware workstation 12、CentOS-7-x86_64-DVD-1611.iso、jdk-8u172-linux-x64.tar.gz。
下载 VMware 安装包后,根据提示一步一步安装基本就可以了,这块网上有不少文章,此处不再赘述。(关于密钥,大天朝都懂的)
安装好VMware后,就是在VMware中创建虚拟机然后安装系统了,不废话,直接上图:
2.1、新建虚拟机
2.2、在新建的虚拟机中安装CentOS系统
说明:
CentOS系统安装完成后,可能会提示你安装(或更新)VMware Tools工具,可不更新。
CentOS系统安装完成后,可能会发现系统并未自动分配IP,外网也不通,如下图:
这是因为没有激活网卡,编辑ifcfg_ens33
文件激活:
命令:
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
将ONBOOT=no
修改为 ONBOOT=yes
保存退出,然后执行命令 service network restart
重启网络服务。(有的该配置文件中的值是带引号的,这个没什么关系)
可以看出,虚拟机已经自动获取了IP 192.168.5.128
,已经可以连接外网了。(因笔者之前有设置过虚拟机的网关,所以此处自动获取的IP是“5.X”的,一般自动获取的IP是“1.X”的,即 “192.168.1.X”这样的IP)
以上我们已经动态获取了虚拟机的IP,但动态IP可能会随着虚拟机的重启而发生变化,特别是存在多台虚拟机都动态获取IP时,不太利于我们的开发和测试,因此,统一配置静态IP是有必要的。
第一步:设置VMware虚拟机的网关。
设置完成后,依次点击“确定”保存。
第二步:配置虚拟机网卡文件ifcfg-ens33
。
如图所示,将BOOTPROTO=dhcp
修改为BOOTPROTO=static
,然后再添加指定的静态IP、网关等配置,修改后的整体配置如下所示:(笔者此处没有配置DNS解析地址,如有需要可再加一行DNS1=119.29.29.29
进行配置)
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=47f26d69-2258-4ed9-b3df-56a6f50a8c35
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.5.101
NETMASK=255.255.255.0
GATEWAY=192.168.5.2
修改完成保存,然后执行命令 service network restart
重启网络服务。
可以看到,虚拟机IP已修改为指定的静态IP 192.168.5.101
。
JVM是Java体系中的一个基础环境,所以也有必要配置一下,方便后续克隆机器环境;当然如果不是java体系的,可略过此步骤。
具体关于JDK的安装,就和普通CentOS系统安装JDK一样,这个比较普遍,此处不再赘述。(如有需要,可参考笔者另一篇文字https://blog.csdn.net/cndmss/article/details/51440188)
以上,我们已经创建了一台虚拟机,并且配置好了静态IP、JDK等基础环境(当然,如有需要,也可自行另外配置其它相关环境),那么,如果说我们还需一台或者说多台虚拟机的话,我们需要重新再来一遍吗?
如果真是这样,那真是一个痛苦的事情了!显然,不需要每新建一台虚拟机就重新来一遍,我们可以通过VMware的克隆功能进行快速的扩充新的虚拟机。(克隆的前提是先将虚拟机电源关闭)
说明:创建快照的过程是非必须的,但是笔者还是建议创建,便于后续以及将来克隆虚拟机。
由上,我们会发现,其实克隆虚拟机还是非常方便且快速的。
根据以上第6节,我们再克隆一台虚拟机,至此,我们一共创建了3台虚拟机,这3台虚拟机的配置都是一模一样的;因此,作为一个最基本的可用集群,我们还需要进行一些细微的调整。
第一步:我们把克隆的虚拟机重命名,以方便操作(F2键)
第二步:我们把CentOS7-slave1、CentOS7-slave2这2台机器的IP分别修改为192.168.5.102
、192.168.5.103
。
第三步:修改3台虚拟机的hostname。依次修改为s1、s2、s3。(原来的hostname都是localhost.localdomain
)使用命令 vi /etc/hostname
依次修改3台虚拟机的hostname,并重启虚拟机。
经测试,3台虚拟机192.168.5.101、192.168.5.102、192.168.5.103
hostname已修改,网络互通,均可访问外网。
至此,“通过VMware搭建分布式集群基础环境”就算基本完成了,后续,就可以在这个虚拟集群机器上搭建各种分布式集群组件了,非常便于日常学习以及开发测试。