1.下载zk安装包
cd /home/user/zk
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
2.zk包解压
tar -zxvf zookeeper-3.4.12.tar.gz
3.搭建3个节点的zk伪分布式集群
在同一台服务器上,部署一个3个ZooKeeper节点组成的集群,这样的集群叫伪分布式集群,而如果集群中的3个节点分别部署在3个服务器上,那么这种集群就叫真正的分布式集群。因为服务器只有一台,所以用伪分布式集群方式将解压的zk复制三份,分别命名为zk0,zk1,zk2,这三个目录当成是集群中的3个节点
cp -r zookeeper-3.4.12 zk0
cp -r zookeeper-3.4.12 zk1
cp -r zookeeper-3.4.12 zk2
因为有多重目录,所以需要用cp -r的命令拷贝
4.为每个节点创建目录和myid文件
示例节点0:
cd zk0
mkdir data
mkdir logs
在data目录下面创建myid文件
cd zk0
echo "0" > myid
0表示服务器在集群环境中的编号,这个编号id必须在集群环境中服务器标识中是唯一的,且大小在1~255之间。后面的zk1编号为1,zk2编号为2
5.为每个节点创建配置文件
在zk0/conf目录下创建zoo.cfg
添加以下内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/{$user}/zk/zk0/data
dataLogDir=/home/{$user}/zk/zk0/logs
autopurge.snapRetainCount=10
autopurge.purgeInterval=1
clientPort=2180
server.0=127.0.0.1:2883:3884
server.1=127.0.0.1:2885:3886
server.2=127.0.0.1:2887:3888
参数说明:
- tickTime=2000
Zookeeper最小时间单元,单位为ms,默认值为3000。也就是Leader与Follower每隔tickTime时间就会发送一个心跳。 - initLimit=10
Leader服务器等待Follower启动并完成数据同步的时间,默认值10。 当已经超过10*tickTime后,Leader还没有收到Follower的返回信息,那么表明这个Follower连接或同步失败。 - syncLimit=5
Leader服务器和Follower之间进行心跳检