目录

  1. 安装前准备
  2. 单机模式安装与配置
  3. 集群模式安装与配置
  4. 验证安装
  5. 参考资料

安装前准备

ZooKeeper 是基于 Java 的服务,因此需要以下准备:

  • Java 环境:ZooKeeper 依赖 JVM,推荐使用 JDK 8 或 11。
  • 操作系统:支持 Linux、macOS 或 Windows,本教程以 Ubuntu 为例。
  • 下载 ZooKeeper:从 Apache 官网获取最新稳定版(例如 3.8.4)。

检查 Java

1
java -version

如果未安装:

1
2
sudo apt update
sudo apt install openjdk-11-jdk

单机模式安装与配置

单机模式适合开发和测试环境。

步骤

  1. 下载 ZooKeeper
1
2
3
tar -xzf apache-zookeeper-3.8.4-bin.tar.gz
cd apache-zookeeper-3.8.4-bin
  1. 配置 ZooKeeper
  • 复制示例配置文件:
    bash cp conf/zoo_sample.cfg conf/zoo.cfg
  • 编辑 conf/zoo.cfgbash nano conf/zoo.cfg 默认配置如下: tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181
    • tickTime:心跳时间(毫秒)。
    • dataDir:数据存储目录,需手动创建:
      bash sudo mkdir /var/lib/zookeeper sudo chown $USER:$USER /var/lib/zookeeper
    • clientPort:客户端连接端口。
  1. 启动 ZooKeeper
1
bin/zkServer.sh start

输出类似:

1
2
3
ZooKeeper JMX enabled by default
Using config: /home/user/apache-zookeeper-3.8.4-bin/conf/zoo.cfg
Starting zookeeper ... STARTED
  1. 停止 ZooKeeper
1
bin/zkServer.sh stop

集群模式安装与配置

集群模式提供高可用性和容错能力,至少需要 3 台服务器组成 quorum。

示例:3 节点集群

假设有 3 台服务器,IP 分别为:

  • 192.168.1.101
  • 192.168.1.102
  • 192.168.1.103

步骤

  1. 在每台服务器上安装 ZooKeeper
    重复单机模式的下载和解压步骤:
1
2
3
tar -xzf apache-zookeeper-3.8.4-bin.tar.gz
cd apache-zookeeper-3.8.4-bin
  1. 配置 ZooKeeper
  • 编辑 conf/zoo.cfg(每台服务器相同): tickTime=2000 initLimit=10 syncLimit=5 dataDir=/var/lib/zookeeper clientPort=2181 server.1=192.168.1.101:2888:3888 server.2=192.168.1.102:2888:3888 server.3=192.168.1.103:2888:3888
    • initLimit:Follower 初始化连接到 Leader 的最大时间(tickTime 的倍数)。
    • syncLimit:Follower 与 Leader 同步的最大时间。
    • server.X:集群中的服务器,格式为 IP:Follower端口:Leader选举端口
  • 创建数据目录:
    bash sudo mkdir /var/lib/zookeeper sudo chown $USER:$USER /var/lib/zookeeper
  1. 设置服务器 ID
    在每台服务器的 dataDir/var/lib/zookeeper)中创建 myid 文件:
  • 节点 1:
    bash echo "1" > /var/lib/zookeeper/myid
  • 节点 2:
    bash echo "2" > /var/lib/zookeeper/myid
  • 节点 3:
    bash echo "3" > /var/lib/zookeeper/myid
  1. 启动集群
    在每台服务器上运行:
1
bin/zkServer.sh start

检查状态:

1
bin/zkServer.sh status
  • 一个节点显示 leader,其余显示 follower

验证安装

使用 ZooKeeper 客户端验证服务是否正常运行。

单机验证

1
bin/zkCli.sh -server 127.0.0.1:2181

输入命令:

1
2
3
ls /
create /test "test data"
get /test

预期输出:

1
test data

集群验证

从任意节点连接:

1
bin/zkCli.sh -server 192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181

运行相同命令,数据应在集群间同步。


参考资料


这是 ZooKeeper 的安装和配置教程,涵盖了单机和集群两种模式。如果您需要特定操作系统的安装步骤或遇到问题,请告诉我!