前言:搭建这个集群,首先必须细心,再者考虑周全,前两年搭建七台都是so easy,这次三台,我就失败好几次,血的教训,希望后来者不要重蹈覆辙。之前安装虚拟机都是CentOS7版本以下得,很多命令齐全,操作顺畅,所以容易搭建成功,但现在基本都是CentOS7及7以上版本,很多命令得自己手动下载,有的命令也有所变动,甚至配置文件内容都发生变化,这个之后你就会慢慢发现,不罗嗦了,进入正题。
准备:搭建zookeeper集群,我这里用三台虚拟机(必须是奇数台,至少三台(五台,七台和三台搭建操作内容都大同小异,只需要配置修改一下),为撒是奇数台,自己查!!!这是我安装虚拟机过程:https://blog.csdn.net/qq_39772439/article/details/98743484)安装完后保准三台能ping通,并且每个虚拟机都必须安装好jdk(我安装1.8的,这是我安装jdk链接,有兴趣可以看看:https://blog.csdn.net/qq_39772439/article/details/98752088)。
一切准备就绪了,开始搭建吧!!!
先下载一个zookeeper
链接:https://pan.baidu.com/s/1uuO0438F95u2bMnTFsA52g
提取码:tfx5
第一步:创建一个放压缩包的文件夹,并将zookeeper放进去
cd /usr/local
mkdir software
ll
cd software
通过xshell将压缩包放进去(不知道撒是xshell???上网查去。只要包压缩包整进去就OK了)
第二步:将他解压并放到到zkcluster(zkcluster也是自己创建的文件夹)
cd /usr/local
mkdir zkcluster
ll
将software 中的压缩包解压并放到zkcluster中
cd /usr/local/software
tar -zxvf zookeeper-3.4.5.tar.gz
解压之后
ll
修改名字3001(剩下的两个分别为3002,3003)
mv zookeeper-3.4.5 3001
将其放到zkcluster
mv 3001 /usr/local/zkcluster/
cd /usr/local/zkcluster/
ll
第三步:配置zoo.cfg
cd 3001/conf/
修改zoo_sample.cfg为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
打开zoo.cfg配置文件
修改后的zoo.cfg配置文件
dataDir=/usr/local/zkcluster/3001/data
dataLogDir=/usr/local/zkcluster/3001/logs
clientPort=3001
server.1=192.168.95.128:2881:3881
server.2=192.168.95.129:2882:3882
server.3=192.168.95.130:2883:3883
(说明:server.X,这个X值即为集群机器中myid文件中的值;后面的IP即为集群机器的IP,后面的两个端口号依次为集群中节点交换信息的端口、重新选举Leader的通信端口)
第四步,根据zoo.cfg创建不存在的文件及文件夹
dataDir=/usr/local/zkcluster/3001/data
dataLogDir=/usr/local/zkcluster/3001/logs
mkdir data
mkdir logs
创建myid文件在data文件夹中,server.X,这个X值即为集群机器中myid文件中的值,所以每个集群机器的myid不一致
vi /data/myid
至此,配置就算基本完成了,所有Zookeeper集群中的节点机器,除了myid文件中的值和zoo.cfg中clientPort值不一样外,其它配置均一样。
剩下的两台和第一台内容基本一致,除了myid,clientPort值,zookeeper名字修改的不一致
第五步:至关重要的一步,关掉防火墙
由于是CentOS7,它关闭防火墙的命令和之前不一致
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动(最好禁止)
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl stop firewalld.service 关闭防火墙
最后启动三台服务器
cd /usr/local/zkcluster/3001/bin/
zkServer.sh start
三台都启动完毕之后,再查看服务状态并可以看到当前节点是leader(主)节点还是follower(从)节点。
zkServer.sh status
第一台 follower
第二台:leader
第三台:follower
啊,萨嘎,搭建成功。
如果出现以下错误
可通过在bin中zookeeper.out 中查询原因。