1.1 Linux使用的是CentOS7.3的发行版,Zookeeper的版本是3.4.12.搭建三个节点的集群,是分别在三台虚拟机上配置Zookeeper节点,不是在一台虚拟机上搭建的三个Zookeeper节点的伪集群.分布式集群配置奇数个节点.
1.2 使用VMware的克隆技术,完成了三个节点的搭建.IP分别是:
①:192.168.199.133.
②:192.168.199.136.
③:192.168.199.137.
① 192.168.199.136.
② 192.168.199.137.
① 192.168.199.133上面下载然后scp至其他两台即可.
wget http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
②:分别将压缩包复制到其他两台虚拟机上.(可以提前配置一下免密登录)
scp /usr/local/zookeeper-3.4.12.tar.gz [email protected]:/usr/local
scp /usr/local/zookeeper-3.4.12.tar.gz [email protected]:/usr/local
192.168.199.136下/usr/local查看.
192.168.199.137下/usr/local查看.
①:192.168.199.133下解压.
tar zxvf zookeeper-3.4.12.tar.gz
rm -rf zookeeper-3.4.12.tar.gz
②:192.168.199.136下解压.
tar zxvf zookeeper-3.4.12.tar.gz
rm -rf zookeeper-3.4.12.tar.gz
③:192.168.199.137下解压.
tar zxvf zookeeper-3.4.12.tar.gz
rm -rf zookeeper-3.4.12.tar.gz
2.1 完成Zookeeper的解压,然后在每个节点Zookeeper目录下创建数据目录zkData.不使用/tmp目录.创建myid.
然后在zkData目录下创建一下myid文件.(指定Server的编号).
cd zkData
touch myid
三台机器分别指定为1,2,3.在搭建集群的时候,Zookeeper在启动的时候,会读取里面的数据与zoo.cfg中配置信息进行比较进而判断是哪个Server.
2.2 修改配置文件.(关键)
①.修改conf目录下的zoo_sample.cfg为zoo.cfg.(三个都修改).
mv zoo_sample.cfg zoo.cfg
②.修改zoo.cfg文件.
配置通式:serevr.A=B:C:D.解释如下.
A:表示这是第几号机器.
B:表示这台服务器的IP地址.
C:表示这台机器与集群Leader服务器交换信息的端口.常用2888端口.
D:如果集群中的Leader服务器挂了,选出一个新的Leader时,这个端口用来和其他服务器进行通信的端口.常用3888端口.
因为是分布式集群搭建,所以可以配置一样的端口,如果是伪集群,在一台机器上搭建时,B就配置为127.0.0.1或localhost.C和D配置均为不同的端口.分布式集群中的每个节点都分布在不同的机器上,每个机器都有自己玩的IP地址,端口也不会被其他节点所占用.
③.vim zoo.cfg.(三个节点配置一样的).
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.12/zkData
clientPort=1281
server.1=192.168.199.133:2888:3888
server.2=192.168.199.136:2888:3888
server.3=192.168.199.137:2888:3888
3.1 三台机器分别采用后台启动方式启动.一次在相应的bin目录下启动,在启动的过程中也完成了Leader的选举.启动顺序如下
分别在bin目录下使用sh zkServer.sh start
① :192.168.199.133.
② 192.168.199.136.
③ 192.168.217.137
3.2 查看Zookeeper集群状态.
分别在启动目录下使用sh zkServer.sh status.
①:192.168.199.133
②:192.168.199.136
③:192.168.199.137.
一次启动三台Zookeeper服务节点,根据leader票选算法,server2为leader.依据各自的投票.(myid,ZXID).半数以上即可.
Leader选举是分布式数据一致性额关键所在.分为服务器启动时选举和服务无法和leader保持连接.
3.1 推荐这篇文章,写的非常清楚.Leader选举.
至此完成了Zookeeper的分布式集群搭建,伪分布式就不演示了,比较简单.整个过程还是比较顺利的.