官方文档: zookeeper.apache.org
salt 'zk*' cmd.run 'cd /application && tar xf /root/zookeeper-3.4.9.tar.gz'
salt 'zk*' cmd.run 'cd /application && tar xf /root/jdk-8u131-linux-x64.tar.gz'
salt 'zk*' cmd.run 'mkdir -p /application/ /data/zk/data/'
salt-cp 'zk*' /root/zoo.cfg /application/zk/conf/
配置文件
[root@manager files]# egrep -v "^#|^$" zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk/data
clientPort=2181
server.1=10.0.0.101:2881:3881
server.2=10.0.0.102:2882:3882
server.3=10.0.0.103:2883:3883
server.4=10.0.0.104:2884:3884
server.5=10.0.0.105:2885:3885
需要在每台节点的dataDir下创建一个myid的文件。
id=[1,2,3,4,5]
dataDir=/data/zk/data
echo ${id} > ${dataDir}/myid
根据官方建议设置最大堆内存为3G,
这个文件默认不存在,需要手动创建。
salt-cp 'zk*' /root/zookeeper-env.sh /application/zk/conf/
[root@manager files]# cat zookeeper-env.sh
JVMFLAGS="-Xms3072m -Xmx3072m"
启动zk
salt 'zk*' cmd.run '. /etc/profile && /application/zk/bin/zkServer.sh start'
salt 'zk*' cmd.run '. /etc/profile && /application/zk/bin/zkServer.sh status'
伪集群启动脚本
#!/bin/bash
for i in 1 2 3 4 5 ;do
case $1 in
stop) :;;
start) :;;
status) :;;
*) echo $"Usage: $0 { stop | start | status }" && break;;
esac
/application/zk/bin/zkServer.sh $1 /application/zk/conf/zk${i}.cfg
echo ""
sleep 0.5
done
连接zk
/application/zk/bin/zkCli.sh -server10.0.0.101:2181
配置zk
[zk: localhost:2181(CONNECTED) 15] create /application 123
[zk: localhost:2181(CONNECTED) 20] create /app/system "83b3f4fsha1dbxxxxxxx4bxx3b1b""
Created /application/itfin-system