zookeeper有两种模式,一种是单机模式,一种是集群模式。
搭建单机模式比较简单,只需要添加conf/zoo.cfg文件。
tickTime=2000
dataDir=/home/yanhui.jy/zookeeper-3.3.3/data
clientPort=2181
clientPort是client连接的port dataDir是zk中log和数据存储位置。
搭建集群模式,稍微复杂一点。修改zoo.cfg
tickTime=2000
clientPort=2181
dataDir=/home/yanhui.jy/zookeeper-3.3.3/data
initLimit=5
syncLimit=2
server.1=**.**.**.**:2888:3888
server.3=**.**.**.**:2888:3888
其中server配置的是第几太server,第一个port即我配置的2888,是与leader进行交换信息的端口,第二个port即3888是leader挂了,选举的port。
配置完成后需要在配置的dataDir中生成一个myid , 在server.1机器中myid 为 1 。
一下是自动化部署脚本:首先先定义事先写好的zoo.cfg目录,zoo.cfg就是上文所写的。
declare zoo_cfg="$base/zoo.cfg"
for i in `grep "^server" $zoo_cfg`
do
IP=`echo $i|cut -d= -f2|cut -d: -f1`
NUMBER=`echo $i|cut -d= -f1|cut -d. -f2`
ssh -n $IP mkdir -p ~/zookeeper-3.3.3/data
printf $NUMBER >myid
scp myid $IP:~/zookeeper-3.3.3/data/
done