利用ZooKeeper框架在Vmware虚拟机中搭建3台Linux分布式集群
利用ZooKeeper框架在Vmware虚拟机中搭建3台Linux分布式集群
利用ZooKeeper框架在Vmware虚拟机中搭建3台Linux分布式集群
概述
搭载ZooKeeper环境的Linux分布式集群,为日后的分布式、大数据学习做准备。
配置
考虑到国内红帽系的Linux比重最大,使用免费的CentOS7.7。
网关192.168.88.2
,对应地,
子网掩码为255.255.255.0
。DNS选用8.8.8.8
和114.114.114.114
。node1的IP192.168.88.9
,node2的IP192.168.88.10
,node3的IP192.168.88.11
。
具体步骤
node1虚拟机制作
安装及固定IP
安装VMware15.5及以上版本,先做一个Linux系统的虚拟机(选用Ubuntu之类的也可以,问题不大)。不再使用GUI,后续全部使用命令行。
使用ifconfig
查看node1的网络信息。
使用vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改DHCP(动态分配IP)为静态获取IP(固定IP)修改:
BOOTPROTO="static" ,
IPADDR="192.168.88.9"
GATEWAY="192.168.88.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="114.114.114.114"
IPV6_PRIVACY="no"
有就修改(或先把原来的那行#注释),没有就添加。然后systemctl restart network
重启网络,重新使用ifconfig
查看node1的网络信息。
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
使用这2条,关闭防火墙服务,并关闭开机自启动。
JDK安装
大数据一定会用到JDK。
mkdir -p /export/software
创建安装包存放路径。
mkdir -p /export/server
创建安装路径。
mkdir -p /export/data
创建数据区。
先切换到安装包路径cd /export/software/
,使用secureCRT的rz上传文件jdk-8u241-linux-x64.tar.gz。然后tar -zxvf jdk-8u241-linux-x64.tar.gz -C /export/server/
解压。
使用VIM配置环境变量:vim /etc/profile
,加入:
export JAVA_HOME=/export/servers/jdk1.8.0_241
export PATH=:$PATH:$JAVA_HOME/bin
source /etc/profile
刷新环境变量。使用java -version
,看到JDK版本就说明安装成功。
常用软件比如MySQL也可以先安装上,就不需要克隆之后再多次安装。笔者仅安装了JDK。
关闭SELinux
使用vim /etc/selinux/config
,修改SELINUX=disabled
,reboot
重启下。
虚拟机克隆
笔者的SSD盘G盘空间不多,故将虚拟机克隆到SSD盘C盘,SSD盘玩虚拟机比HDD舒服太多了!!!虚拟机比打游戏对硬盘的伤害小,不要慌,可劲造。。。
完整克隆(先关闭虚拟机才能克隆,开机或者挂起状态是不能克隆的,最好留个快照),防止node1损坏连带node2和node3也不能使用。
克隆出node2和node3以后,给2个新虚拟机的网络适配器,高级,重新生成MAC地址。
固定IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
分别修改为192.168.88.10和192.168.88.11。和node1的步骤类似,不再赘述。
systemctl restart network.service
设置完成后重启网络。
修改主机名
hostnamectl set-hostname node2
修改node2的主机名。
hostnamectl set-hostname node3
修改node3的主机名。
使用reboot
重启生效。
映射配置
Linux中:
vim /etc/hosts
修改内容:
192.168.88.9 node1
192.168.88.10 node2
192.168.88.11 node3
Win10中:
在C:\Windows\System32\drivers\etc\hosts
添加同样的内容,不能保存就另存到桌面,再覆盖原来的文件。注意另存的时候不要有.txt后缀。
免密匙登录
3个虚拟机都需要:
ssh-keygen -t rsa
多按几次回车会生成密室。
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
3个虚拟机都需要执行,实现3个虚拟机的免密匙登录。
时钟同步
所有机器是一个集群,用于共同工作解决同一个问题,必须保证所有机器的时间是同步的,不能有毫秒以上的误差。一般一个集群对外只暴露1个IP,故只需要对外的这个IP和外部时间同步,集群内的其它机器都和这台机器同步即可。
yum -y install ntp
三台都要安装ntp服务。
三台都要使用vim /etc/sysconfig/ntpd
添加SYNC_HWCLOCK=yes
,配置本地时钟同步。
笔者配置node1为与外部时间同步:
使用vim /etc/ntp.conf
,#注释所有restrict以及server开头的行,添加:
restrict 192.168.88.0 mask 255.255.255.0 nomodify notrap
server ntp4.aliyun.com
server 202.112.10.36
server 127.127.1.0 # localclock
fudge 127.127.1.0 stratum 10
另外2台:
使用:vim /etc/ntp.conf
,同样注释后,添加:
server 192.168.88.9
启动3台机器的ntp服务:
systemctl start ntpd.service
systemctl enable ntpd.service
后2台:
ntpdate -u 192.168.88.9
手动同步,并配置定时任务:
crontab -e
这玩意儿和VIM用法差不多,填写:
*/5 * * * * /usr/sbin/ntpdate -u 192.168.88.130 > /dev/null 2>&1
还有2条可以看状态的命令:
ntpq -p:#列举当前所有可用的同步服务器
ntpstat:#查看当前的同步状态
ZooKeeper配置
去http://archive.apache.org/dist/
下载zookeeper-3.4.6.tar.gz,切换到安装包目录:
cd /export/software/
使用rz命令上传后,解压:
tar -zxvf zookeeper-3.4.6.tar.gz -C /export/server/
切换node1的目录cd /export/server/zookeeper-3.4.6/
,
使用cp conf/zoo_sample.cfg conf/zoo.cfg
复制并改名获得配置文件。
创建存储目录:
mkdir /export/server/zookeeper-3.4.6/zkData
使用VIM修改vim conf/zoo.cfg
:
dataDir=/export/server/zookeeper-3.4.6/zkData
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
生成node1的myid:
echo "1" >/export/server/zookeeper-3.4.6/zkData/myid
分发给node2和node3:
cd /export/server/
scp -r zookeeper-3.4.6 node2:$PWD
scp -r zookeeper-3.4.6 node3:$PWD
使用echo "2" >/export/server/zookeeper-3.4.6/zkData/myid
修改node2的myid,使用echo "3" >/export/server/zookeeper-3.4.6/zkData/myid
修改node3的myid。
3个虚拟机都使用cd /export/server/zookeeper-3.4.6/
切换目录,bin/zkServer.sh start
启动ZooKeeper服务。还可以使用bin/zkServer.sh status
查看状态,使用bin/zkServer.sh stop
关闭服务。由于未提供重启命令,只能先stop再start。
至此完成了ZooKeeper集群搭建。
更多推荐
所有评论(0)