首先我的环境是一台deepin加两台ubuntu server版的虚拟机的集群。
首先要关闭防火墙。
然后再看zookeeper文件目录下conf目录下的文件是否有zoo.cfg和zoo_sample.cfg(原本解压后只有zoo_sample.cfg,但是需要将其改名为zoo.cfg),不能两个文件同时存在。
在zoo.cfg文件中加入如下配置
dataDir=/root/zkdata
dataLogDir=/root/zkdata/log
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888
注意要在相应的文件夹下创建好相关文件
特别注意要在zkdata文件夹下创建myid文件,并且里面的数字要和zoo.cfg文件中的server.1,server.2,server.3相对应,否则就会出现像Error contacting service. It is probably not running.的错误。遇到错误不能着急,去看zookeeper.out文件里面的报错信息,一般会提供大量的有用信息帮助我们解决问题。
最后分别启动三台机器,启动完毕以后再看启动信息。
./zkServer.sh start
./zkServer.sh status
注意zookeeper集群的机器数量一般是奇数台,这时发现其中一台是leader,其他两台是follower
这时将leader杀死,zookeeper集群会通过选举策略选出新的leader,只要存活的机器数量大于总数的一半,zookeeper集群将正常运转。