下载zk包并解压:
$ su
$ useradd zookeeper
$ su zookeeper && mkdir zookeeper
$ wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
$ tar -zxvf
zookeeper-3.4.12.tar.gz
拷贝到对应的文件夹:
$ mkdir -p zookeeper/zk-master zookeeper/zk-slave1 zookeeper/zk-slave2
$ cp -rf zookeeper-3.4.14/* zookeeper/zk-master
$ cp -rf zookeeper-3.4.14/* zookeeper/zk-slave1
$ cp -rf zookeeper-3.4.14/* zookeeper/zk-slave2
配置zk的配置文件信息:
$ cd /home/zookeeper/zookeeper/zk-master/conf && mv zoo_sample.cfg zoo.cfg //将zoo_sample覆盖为zoo
$ cp -rf zoo.cfg ../../zk-slave1/conf //将master的zoo覆盖去slave1
$ cp -rf zoo.cfg ../../zk-slave2/conf
然后将三个zoo.cfg编辑如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/zookeeper/zk-master/tmp
clientPort=2181
dataLogDir=/home/zookeeper/zookeeper/zk-master/datalog
server.0=localhost:2888:3888
server.1=localhost:2889:3889
server.2=localhost:2890:3890
注:将master、slave1、slave2对应的zoo.cfg中clientPort分别修改为2181、2182、2183,dataDir、dataLogDir分别创建好并且修改好。
然后再对应的dataDir目录下创建myid文件如下(
注意0/1/2要对应上面的server.0/1/2):
$ cd ./zookeeper/zk-master/tmp && echo "0" > myid && echo "1" > ../../zk-slave1/tmp/myid && echo "2" > ../../zk-slave2/tmp/myid
开放防火墙端口(开放2181-3):
$ su
#
firewall-cmd --zone=public --add-port=2181/tcp --permanent
#
firewall-cmd --zone=public --add-port=2182/tcp --permanent
#
firewall-cmd --zone=public --add-port=2183/tcp --permanent
# firewall-cmd --reload
当然为了方便,一下写了一个脚本用了批量重启zk多实例如下(直接执行这个脚本就行了):
#zk目录
zk_home=/home/zookeeper/zookeeper
for application_name in `ls $zk_home`
do
/home/zookeeper/zookeeper/${application_name}/bin/zkServer.sh restart
done