1. 获取zookeeper二进制软件包,地址[https://www.apache.org/dyn/closer.cgi/zookeeper/](https://www.apache.org/dyn/closer.cgi/zookeeper/
    当前稳定版为3.4.14
  2. 解压文件到自定义目录,这里我解压到/opt/zookeeper下
    # tar -xf zookeeper-3.4.14.tar.gz -C /opt/
    # cd /opt/
    # mv zookeeper-3.4.14/ zookeeper
  3. 进入到zookeeper配置文件目录中(/opt/zookeeper/conf),创建三个配置文件,zoo1.cfg, zoo2.cfg, zoo3.cfg,配置文件可以由默认的zoo_sample.cfg修改而成,文件内容如下
    zoo1.cfg:
    # grep -E -v '^#.*|^$' zoo1.cfg
    tickTime=2000                     #CS之间的心跳时间,默认为2秒
    initLimit=10                      #集群中follower服务器和leader服务器初始连接时能容忍的最多心跳数
    syncLimit=5                       #集群中follower服务器和leader服务器之间请求和应答最多能容忍的心跳数
    dataDir=/opt/zookeeper/Server1/data    #该目录用来存放myid信息和一些版本等信息
    dataLogDir=/opt/zookeeper/Server1/log  #日志目录
    clientPort=2181                   #客户端连接的端口,默认是2181
    maxClientCnxns=6000               #最大连接数
    maxSessionTimeout=60000           #会话超时时长
    server.1=test3:2888:3888          #集群配置信息server.N = HHH:A:B  N服务器编号,HHH服务器地址,A表示flower跟leader的通信端口,默认2888, B表示选举端口,默认3888
    server.2=test3:2788:3788
    server.3=test3:2688:3688

    zoo2.cfg:

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/Server2/data
    dataLogDir=/opt/zookeeper/Server2/log
    clientPort=2182
    server.1=test3:2888:3888
    server.2=test3:2788:3788
    server.3=test3:2688:3688

    zoo3.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/Server3/data
    dataLogDir=/opt/zookeeper/Server3/log
    clientPort=2183
    server.1=test3:2888:3888
    server.2=test3:2788:3788
    server.3=test3:2688:3688
  4. 创建相应的数据目录和日志目录
    # mkdir -pv /opt/zookeeper/Server{1,2,3}/{data,log}
  5. 在dataDir指定的文件夹中创建文件myid,myid文件内容为对应server的id号,范围0-255
    # echo 1 > opt/zookeeper/Server1/data/myid 
    # echo 2 > opt/zookeeper/Server2/data/myid 
    # echo 3 > opt/zookeeper/Server3/data/myid 
  6. 添加PATH环境变量
    # vi /etc/profile.d/zookeeper.sh
    export ZOOKEEPER_HOME=/opt/zookeeper
    export PATH=$PATH:$ZOOKEEPER_HOME
    # . /etc/profile.d/zookeeper.sh
  7. 使用不同的配置文件,启动zookeeper
    # zkServer.sh start /opt/zookeeper/conf/zoo1.cfg
    # zkServer.sh start /opt/zookeeper/conf/zoo2.cfg
    # zkServer.sh start /opt/zookeeper/conf/zoo3.cfg
  8. 查看zookeeper状态

    # zkServer.sh status /opt/zookeeper/conf/zoo1.cfg
    # zkServer.sh status /opt/zookeeper/conf/zoo2.cfg
    # zkServer.sh status /opt/zookeeper/conf/zoo3.cfg
  9. 注意事项
  • 三个端口号不要设置为相同
  • 每个dataDir目录中都要有myid文件
  • 每个myid文件里都要对应一个zoo.cfg中server后跟的数字