原文: https://zjj1994.blog.csdn.net/article/details/118487632

1 . 准备 Zookeeper 安装包上传到 Linux 并解压

Zookeeper 安装包下载地址
链接: https://pan.baidu.com/s/1ZnmJrlFHjszjdVgd0RuQAA 提取码: h5ik 复制这段内容后打开百度网盘手机 App,操作更方便哦

  1. 我放到 “/root/soft/zookeeper-3.4.10/“ 位置了, 你们随意

  2. 解压安装包

  3. 配置 zookeeper 环境变量, 不会的话看: https://zjj1994.blog.csdn.net/article/details/118486083 帖子

这里不赘述了, 能搭集群的应该都会这些东西.

2. 修改配置文件

一号机器文件

一号机器 zoo.cfg 的配置文件

将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件

文件位置在 “/root/soft/zookeeper-3.4.10/conf/zoo.cfg”

  1. tickTime=2000
  2. initLimit=10
  3. syncLimit=5
  4. # 数据文件存放位置
  5. dataDir=/root/soft/zookeeper-3.4.10/data
  6. # log文件存放位置
  7. dataLogDir=/root/soft/zookeeper-3.4.10/logs
  8. clientPort=2181
  9. # 一号机器
  10. server.1=zjj101:2888:3888
  11. # 二号机器
  12. server.2=zjj102:2888:3888
  13. # 三号机器
  14. server.3=zjj103:2888:3888

自己自行创建 / root/soft/zookeeper-3.4.10/data 和 / root/soft/zookeeper-3.4.10/logs 这两个目录

配置说明:

①、tickTime:基本事件单元,这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔 tickTime 时间就会发送一个心跳;最小 的 session 过期时间为 2 倍 tickTime

②、dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

③、client:监听客户端连接的端口。

④、initLimit:允许 follower 连接并同步到 Leader 的初始化连接时间,以 tickTime 为单位。当初始化连接时间超过该值,则表示连接失败。

⑤、syncLimit:表示 Leader 与 Follower 之间发送消息时,请求应答时间长度。如果 follower 在设置时间内不能与 leader 通信,那么此 follower 将会被丢弃。

⑥、server.A=B:C:D

A:其中 A 是一个数字,表示这个是服务器的编号;

B:是这个服务器的 ip 地址;

C:Zookeeper 服务器之间的通信端口;

D:Leader 选举的端口。

一号机器创建 myid 文件

路径是 “/root/soft/zookeeper-3.4.10/data/“

创建 myid 文件

myid 文件内容是

  1. 1

你没看错, 只有一个 1,

二号机器文件

二号机机器文件

将一号机器的 zoo.cfg 复制到二号机器上, zoo.cfg 内容和一号机的内容一模一样.

自己自行创建 / root/soft/zookeeper-3.4.10/data 和 / root/soft/zookeeper-3.4.10/logs 这两个目录

二号机创建 myid 文件

路径是 “/root/soft/zookeeper-3.4.10/data/“

创建 myid 文件

myid 文件内容是

  1. 2

三号机器文件

三号机机器文件

将一号机器的 zoo.cfg 复制到三号机器上, zoo.cfg 内容和一号机的内容一模一样.

自己自行创建 / root/soft/zookeeper-3.4.10/data 和 / root/soft/zookeeper-3.4.10/logs 这两个目录

三号机创建 myid 文件

路径是 “/root/soft/zookeeper-3.4.10/data/“

创建 myid 文件

myid 文件内容是

  1. 3

3. 启动 zookeeper 服务

三台机器同时执行这个命令 :

sh $ZOOKEEPER_HOME/bin/zkServer.sh start

  1. [root@zjj101 etc]# sh $ZOOKEEPER_HOME/bin/zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /root/soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED

控制台出现 Starting zookeeper … STARTED 字眼, 说明 Zookeeper 启动成功了.

查看 Zookeeper 的状态

  1. [root@zjj101 ~]# sh $ZOOKEEPER_HOME/bin/zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /root/soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
  4. Mode: follower
  1. [root@zjj102 ~]# sh $ZOOKEEPER_HOME/bin/zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /root/soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
  4. Mode: leader
  1. [root@zjj103 ~]# sh $ZOOKEEPER_HOME/bin/zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /root/soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
  4. Mode: follower

可以看到, 有一台机器是 leader , 两台机器是 follower

附录 Zookeeper 的命令

启动 Zookeeper

sh $ZOOKEEPER_HOME/bin/zkServer.sh start

停止 Zookeeper

sh $ZOOKEEPER_HOME/bin/zkServer.sh stop

查看 Zookeeper 的状态

sh $ZOOKEEPER_HOME/bin/zkServer.sh status

重新启动 Zookeeper 服务

sh $ZOOKEEPER_HOME/bin/zkServer.sh restart