目录
安装前准备
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 |
单机模式安装与配置
单机模式适合开发和测试环境。
步骤
- 下载 ZooKeeper
1 2 3 | tar -xzf apache-zookeeper-3.8.4-bin.tar.gz cd apache-zookeeper-3.8.4-bin |
- 配置 ZooKeeper
- 复制示例配置文件:
bash cp conf/zoo_sample.cfg conf/zoo.cfg
- 编辑
conf/zoo.cfg
:bash 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
:客户端连接端口。
- 启动 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 |
- 停止 ZooKeeper
1 | bin/zkServer.sh stop |
集群模式安装与配置
集群模式提供高可用性和容错能力,至少需要 3 台服务器组成 quorum。
示例:3 节点集群
假设有 3 台服务器,IP 分别为:
192.168.1.101
192.168.1.102
192.168.1.103
步骤
- 在每台服务器上安装 ZooKeeper
重复单机模式的下载和解压步骤:
1 2 3 | tar -xzf apache-zookeeper-3.8.4-bin.tar.gz cd apache-zookeeper-3.8.4-bin |
- 配置 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
- 设置服务器 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 | 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 官方安装指南 – 官方安装说明。
- ZooKeeper 集群配置 – 集群设置详情。
- DigitalOcean – ZooKeeper 安装 – Ubuntu 集群教程。
- Apache ZooKeeper 下载 – 获取最新版本。
这是 ZooKeeper 的安装和配置教程,涵盖了单机和集群两种模式。如果您需要特定操作系统的安装步骤或遇到问题,请告诉我!
发表回复