[TOC]
### **准备条件**
* 主机一台:192.168.2.101
* 关闭防火墙
### **下载**
http://zookeeper.apache.org/releases.html
本文下载的版本为 zookeeper-3.4.14.tar.gz
### **安装**
本文将安装三个zk实例组成一个集群。
把上面的tar包拷贝到主机的某个目录下(本文为`/root/zookeeper/`),然后解压zookeeper-3.4.14.tar.gz得到文件夹zookeeper-3.4.14,将zookeeper-3.4.14重命名为zookeeper-1,然后将该文件夹复制到当前目录下两份,分别命名为zookeeper-2、zookeeper-3
```
$ tar xzvf zookeeper-3.4.14.tar.gz
$ mv zookeeper-3.4.14 zookeeper-1
$ cp -rvf zookeeper-1 zookeeper-2
$ cp -rvf zookeeper-1 zookeeper-3
```
然后为三个实例分别在各自的目录下创建数据目录
```
$ mkdir zookeeper-1/data zookeeper-2/data zookeeper-3/data
```
然后先为zookeeper-1创建配置文件`zookeeper-1/conf/zoo.cfg`,内容如下:
```
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper-1/data
clientPort=2181
server.1=192.168.2.101:2888:3888
server.2=192.168.2.101:12888:13888
server.3=192.168.2.101:22888:23888
```
然后先为zookeeper-2创建配置文件`zookeeper-2/conf/zoo.cfg`,内容如下:
```
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper-2/data
clientPort=12181
server.1=192.168.2.101:2888:3888
server.2=192.168.2.101:12888:13888
server.3=192.168.2.101:22888:23888
```
然后先为zookeeper-3创建配置文件`zookeeper-3/conf/zoo.cfg`,内容如下:
```
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper-1/data
clientPort=22181
server.1=192.168.2.101:2888:3888
server.2=192.168.2.101:12888:13888
server.3=192.168.2.101:22888:23888
```
然后,在每个实例的data目录下为该实例创建myid文件,文件内容就为实例的id,对应上面的server.x:
```
$ echo 1 > zookeeper-1/data/myid
$ echo 2 > zookeeper-2/data/myid
$ echo 3 > zookeeper-3/data/myid
```
最后,启动三个实例
```
$ zookeeper-1/bin/zkServer.sh start
$ zookeeper-2/bin/zkServer.sh start
$ zookeeper-3/bin/zkServer.sh start
```
最后,执行以下命令,查看每个实例的状态
```
$ zookeeper-1/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/zookeeper-1/bin/../conf/zoo.cfg
Mode: follower
$ zookeeper-2/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/zookeeper-2/bin/../conf/zoo.cfg
Mode: leader
$ zookeeper-3/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/zookeeper-3/bin/../conf/zoo.cfg
Mode: follower
```
### **使用zookeeper**
执行以下命令连接zk
```
$ zookeeper-1/bin/zkCli.sh -server localhost:2181
```
常用的命令如下:
```
```
### **参考**
* https://www.cnblogs.com/ding2016/p/8280696.html
* https://zookeeper.apache.org/doc/r3.4.14/zookeeperStarted.html
