debian

Debian系统下Zookeeper集群搭建指南

小樊
43
2025-10-23 15:53:53
栏目: 智能运维

Debian系统下Zookeeper集群搭建指南

1. 准备工作

2. 安装Java环境

Zookeeper依赖Java运行时环境(JRE),推荐安装OpenJDK 11(兼容性最佳):

sudo apt update
sudo apt install -y openjdk-11-jdk
# 验证安装
java -version  # 应输出Java 11版本信息

3. 下载并解压Zookeeper

选择稳定版本(如3.7.0),下载后解压至/opt目录:

wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
# 创建软链接(方便后续操作)
sudo ln -s /opt/apache-zookeeper-3.7.0-bin /opt/zookeeper

4. 配置Zookeeper集群

4.1 创建数据目录

为每个节点创建专属数据目录(用于存储集群状态和快照):

sudo mkdir -p /var/lib/zookeeper/{data,logs}
sudo chown -R $(whoami):$(whoami) /var/lib/zookeeper  # 授权当前用户

4.2 复制并修改配置文件

复制示例配置文件zoo_sample.cfgzoo.cfg,编辑集群参数:

cd /opt/zookeeper/conf
sudo cp zoo_sample.cfg zoo.cfg
sudo nano zoo.cfg

修改以下关键参数(以3节点为例):

tickTime=2000                # 基础时间单位(毫秒,用于心跳)
dataDir=/var/lib/zookeeper/data  # 数据目录路径
clientPort=2181              # 客户端连接端口
initLimit=5                  # 初始化同步超时(tick数)
syncLimit=2                  # 同步超时(tick数)
server.1=192.168.1.1:2888:3888  # 节点1的ID、Leader选举端口、数据同步端口
server.2=192.168.1.2:2888:3888  # 节点2配置
server.3=192.168.1.3:2888:3888  # 节点3配置

4.3 创建myid文件

在每个节点的dataDir目录下创建myid文件,写入对应节点ID(与server.X中的X一致):

# 在node1上执行
echo "1" | sudo tee /var/lib/zookeeper/data/myid
# 在node2上执行
echo "2" | sudo tee /var/lib/zookeeper/data/myid
# 在node3上执行
echo "3" | sudo tee /var/lib/zookeeper/data/myid

5. 启动Zookeeper集群

5.1 启动各节点服务

进入Zookeeper的bin目录,依次启动每个节点的服务:

cd /opt/zookeeper/bin
# 在node1上启动
./zkServer.sh start
# 在node2上启动
./zkServer.sh start
# 在node3上启动
./zkServer.sh start

5.2 检查节点状态

通过status命令查看每个节点的角色(Leader/Follower):

# 在node1上执行
./zkServer.sh status
# 在node2上执行
./zkServer.sh status
# 在node3上执行
./zkServer.sh status

正常结果应显示其中一个节点为Mode: leader,其余为Mode: follower

6. 验证集群功能

使用zkCli.sh命令行工具连接集群,执行基础操作:

# 连接任意节点(如node1)
/opt/zookeeper/bin/zkCli.sh -server 192.168.1.1:2181

在命令行中执行以下命令:

# 创建节点
create /test "Hello ZooKeeper"
# 查看节点列表
ls /
# 获取节点数据
get /test
# 删除节点
delete /test
# 退出
quit

7. 配置防火墙(可选但推荐)

允许Zookeeper使用的端口(2181为客户端端口,2888为Leader选举端口,3888为数据同步端口):

sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
sudo ufw reload

8. 设置开机自启动(可选)

通过systemd创建服务文件,实现开机自动启动:

sudo nano /etc/systemd/system/zookeeper.service

写入以下内容(根据实际路径调整):

[Unit]
Description=Apache Zookeeper Server
After=network.target

[Service]
Type=forking
User=$(whoami)
Group=$(whoami)
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
Restart=always

[Install]
WantedBy=multi-user.target

保存后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl start zookeeper

注意事项

0
看了该问题的人还看了