1. 从Apache网站上(zookeeper.apache.org)下载ZooKeeper软件包
2.解压到指定目录 .
/home/zookeeper-1
/home/zookeeper-2
/home/zookeeper-3
3.创建每个目录下conf/zoo.cfg配置文件内容如下
# initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower.
# initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
tickTime=2000
initLimit=10
# 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
syncLimit=5
# dataLogDir如果没提供的话使用的则是dataDir。zookeeper的持久化都存储在这两个目录里。dataLogDir里是放到的顺序日志(WAL)。
# 而dataDir里放的是内存数据结构的snapshot,便于快速恢复。为了达到性能最大化,一般建议把dataDir和dataLogDir分到不同的磁盘上,这样就可以充分利用磁盘顺序写的特性。
dataDir=/yl_test/zookeeper-3.4.8/data
dataLogDir=/yl_test/zookeeper-3.4.8/logs
# 端口设置
clientPort=2188
# server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址.
# B配置该server和集群中选举leader交换消息所使用的端口.
# C配置当一个节点挂掉时新选举leader时所使用的端口.
server.1=192.168.100.7:2333:3666
server.2=192.168.100.100:2333:3666
server.3=192.168.100.111:2333:3666
另外还有一个灰常关键的设置,在每个zk server配置文件的dataDir所对应的目录下,必须创建一个名为myid的文件,其中的内容必须与zoo.cfg中server.x 中的x相同,即:
/yl_test/zookeeper-3.4.8/data/myid 中的内容为1,对应server.1中的1
/yl_test/zookeeper-3.4.8/data/myid 中的内容为2,对应server.2中的2
/yl_test/zookeeper-3.4.8/data/myid 中的内容为3,对应server.3中的3
4. 启动验证
zkServer.sh start
5. 查看状态
zkServer.sh status