首先去官网下载zookeeper二进制文件,我下载的版本是zookeeper-3.4.5.tar.gz
然后解压
[root@localhost java]# tar -zxvf zookeeper-3.4.5.tar.gz
进入zookeeper-3.4.5目录下 创建log、data两个文件夹
[root@localhost zookeeper-3.4.5]# mkdir data
[root@localhost zookeeper-3.4.5]# mkdir log
[root@localhost zookeeper-3.4.5]# cd data/
然后进入data文件夹中创建文件 myid——>用来标识集群中的server
[root@localhost data]# echo "1" > myid
[root@localhost data]# ls
myid
[root@localhost data]# vim myid
[root@localhost data]# echo "第几个就是几" > myid
再修改最后一个配置文件,conf路径下创建 zoo.cfg 这个文件
[root@localhost conf]# touch zoo.cfg
conf 路径下已经有了一个zoo_sample.cfg这个配置文件,这是一个简单的zk的配置,我们也可以直接将他的名字修改成zoo.cfg也可以,但是我们是搭建集群 所以我们还需要配置其他的配置。
[root@localhost zookeeper-3.4.5]# cd conf/
[root@localhost conf]# ls
configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
然后我们vim zoo.cfg修改这个文件
tickTime:心跳间隔时间
initLimit:参数设定了允许所有跟随者与领导者进行连接并同步的时间,如果在设定的时间段内,半数以上的跟随者未能完成同步,领导者便会宣布放弃领导地位,进行另一次的领导选举。如果zk集群环境数量确实很大,同步数据的时间会变长,因此这种情况下可以适当调大该参数。默认为10
syncLimit:Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过此间隔,默认follower服务器与leader服务器之间断开连接
dataDir=/usr/java/zookeeper-3.4.5/data
dataLogDir=/usr/java/zookeeper-3.4.5/log
clientPort=2181
我这里装的比较多 装了7台虚拟机
server.myid文件中的数字=对应机器的ip地址:通讯端口:选举端口
[root@localhost conf]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/java/zookeeper-3.4.5/data
dataLogDir=/usr/java/zookeeper-3.4.5/log
clientPort=2181
server.1=192.168.24.128:2888:3888
server.2=192.168.24.129:2888:3888
server.3=192.168.24.130:2888:3888
server.4=192.168.24.131:2888:3888
server.5=192.168.24.132:2888:3888
server.6=192.168.24.133:2888:3888
server.7=192.168.24.134:2888:3888
设置完这之后再设置其他服务器上的配置文件依次设置完,
其中我遇到一个问题,我本想直接将配置好的这个zk直接下载到本地,然后打成zip,然后上传,发现不能使用,所以可能需要在服务器上打成 tar.gz的压缩包才可以(这个我没有试),我就每一台服务器上都进行了多次的重复设置
接下来我们到bin目录下依次启动zk,最后我们看下status 我们发现Model :leader,说明这台服务器上的zk是爸爸,我们可以使用命令查看其他服务器上的status,其他的会是follower
至此zk集群搭建结束
后续我们了解下他怎么工作的