下载解压:https://www.apache.org/dyn/closer.cgi/zookeeper/
配置
- mv ./conf/zoo_sample.cfg ./conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
// 数据、日志目录
dataDir=/data/qjl/zookeeper-3.4.13/data
dataLogDir=/data/qjl/zookeeper-3.4.13/log
clientPort=2181
// 单机版到此为止,以下为分布式配置方式
// 三个 zookeeper 的 id 为 1,2,3
server.1=192.168.10.17:2888:3888
server.2=192.168.10.18:2888:3888
server.3=192.168.10.19:2888:3888
-
分发 zookeeper 到各节点
-
在各节点上创建 dataDir 目录
-
创建 dataDir/myid
- 在 192.168.10.17 机器执行:echo “1” > dataDir/myid
- 在 192.168.10.18 机器执行:echo “2” > dataDir/myid
- 在 192.168.10.19 机器执行:echo “3” > dataDir/myid
这三个和 zoo.cfg 中最后三行 server.x 和 ip 是对应的
启动
需要去各个节点一个个启动
./bin/zkServer.sh start
jps -l
org.apache.zookeeper.server.quorum.QuorumPeerMain
全部启动之后,再查看集群状态:
./bin/zkServer.sh status
可以看到 Mode 为 leader 或者 follower。
坑
- 启动一个无法连接
我配了3个Zookeeper,当只启动一个时,用 status 查看集群状态会提示
Error contacting service. It is probably not running.
当把三个节点都启动时就可以查看状态了,Zookeeper会自动选举一个leader,两个follower。这跟配置没关系。
- 查看日志
如果有问题,zookeeper 根目录下就有一个 zookeeper.out ,可以查看
检测端口占用
netstat -ap | grep 2181
ps aux | grep 进程号