【老鸟带你肝 Zookeeper】3 节点集群安装实战:从环境配置到脚本自动化全攻略

作为在大数据圈摸爬滚打十年的老鸟,我可以负责任地说:Zookeeper 是分布式系统的「瑞士军刀」——Hadoop HA、Kafka 分区管理、HBase 元数据协调都离不开它。但新手常被集群安装绕晕,今天就把生产级安装流程拆解成「5 步傻瓜式操作」,附自动化脚本和避坑指南,让你 20 分钟搭完集群!

一、安装前的「致命三问」(必看!)

  1. 防火墙关了吗?

    • Zookeeper 依赖端口通信(2181、2888、3888),必须关闭防火墙:
      systemctl stop firewalld && systemctl disable firewalld  # 永久关闭

    • 老鸟提醒:云服务器需额外检查安全组,开放这三个端口!
  2. JDK 装对了吗?

    • 必须先装 JDK 且配置JAVA_HOME,Zookeeper 依赖 Java 环境运行。
  3. 节点间 SSH 互通了吗?

    • 后续脚本需要远程操作节点,提前配置免密登录(ssh-keygen -t rsa

二、5 步搞定集群安装(以 3 节点为例)

节点规划表

节点名称IP 地址角色myid数据目录
bigdata01192.168.100.128Leader/Follower1/opt/installs/zookeeper/zkData
bigdata02192.168.100.129Follower2同上
bigdata03192.168.100.130Follower3同上

步骤 1:上传安装包并解压

# 1. 进入软件目录(提前创建/software)
cd /software  
# 2. 上传Zookeeper安装包(官网下载3.6.3版本)
rz apache-zookeeper-3.6.3-bin.tar.gz  
# 3. 解压到/opt/installs目录
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/installs/  
# 4. 重命名为简洁目录名
mv /opt/installs/apache-zookeeper-3.6.3-bin /opt/installs/zookeeper  

步骤 2:修改核心配置文件 zoo.cfg

cd /opt/installs/zookeeper/conf  
mv zoo_sample.cfg zoo.cfg  # 重命名配置文件
vi zoo.cfg  # 关键配置如下:

 

📝 zoo.cfg 核心配置(逐行解析)
tickTime=2000          # Zookeeper心跳间隔(毫秒),默认2000ms  
initLimit=10           # Follower初始连接Leader的超时时间(单位:tickTime)  
syncLimit=5            # Follower与Leader数据同步的超时时间(单位:tickTime)  
dataDir=/opt/installs/zookeeper/zkData  # 数据存储目录(需手动创建)  
clientPort=2181        # 客户端连接端口(必填)  
# 集群节点配置(3节点版)  
server.1=bigdata01:2888:3888  
server.2=bigdata02:2888:3888  
server.3=bigdata03:2888:3888  

 

  • 2888 端口:Follower 与 Leader 的数据同步端口
  • 3888 端口:Leader 选举端口

步骤 3:创建数据目录并配置 myid

# 在每台节点执行(以bigdata01为例)
cd /opt/installs/zookeeper  
mkdir zkData  # 创建数据目录  
cd zkData  
echo "1" > myid  # myid需与server.x中的x一致(bigdata02写2,bigdata03写3)  
cat myid  # 验证是否写入成功(应输出1)  

 

步骤 4:配置环境变量(全局生效)

vi /etc/profile  # 添加以下内容  
export ZOOKEEPER_HOME=/opt/installs/zookeeper  
export PATH=$PATH:$ZOOKEEPER_HOME/bin  
source /etc/profile  # 刷新环境变量  

步骤 5:分发配置到从节点(老鸟省时技巧)

# 在bigdata01执行,同步整个Zookeeper目录到bigdata02/03  
scp -r /opt/installs/zookeeper bigdata02:/opt/installs/  
scp -r /opt/installs/zookeeper bigdata03:/opt/installs/  
# 分别在bigdata02/03修改myid为2和3  
ssh bigdata02 "echo '2' > /opt/installs/zookeeper/zkData/myid"  
ssh bigdata03 "echo '3' > /opt/installs/zookeeper/zkData/myid"  

三、集群启停自动化:一键脚本 zk.sh

痛点:手动逐台启动 Zookeeper 太麻烦?老鸟写了个脚本,一行命令启停集群!

📄 zk.sh 脚本代码(放在 /usr/local/bin 目录)

#!/bin/bash  
# 功能:一键管理Zookeeper集群(启动/停止/状态查看)  
case $1 in  
"start"){  
  for i in 1 2 3; do  
    echo "========= 启动 bigdata0$i ========="  
    ssh bigdata0$i "zkServer.sh start"  
  done  
};;  
"stop"){  
  for i in 1 2 3; do  
    echo "========= 停止 bigdata0$i ========="  
    ssh bigdata0$i "zkServer.sh stop"  
  done  
};;  
"status"){  
  for i in 1 2 3; do  
    echo "========= bigdata0$i 状态 ========="  
    ssh bigdata0$i "zkServer.sh status"  
  done  
};;  
*)  
  echo "Usage: zk.sh [start|stop|status]"  
;;  
esac  

 🚀 使用示例

zk.sh start  # 启动所有节点  
zk.sh status # 查看集群状态(其中一台会显示Leader,其他显示Follower)  
zk.sh stop   # 停止所有节点  

四、避坑指南:新手必知的 3 个「死亡陷阱」

  1. myid 与 server.x 不匹配

    • 后果:节点无法加入集群,启动后状态一直是LOOKING
    • 解决:确保zkData/myid文件内容与配置中的server.x完全一致
  2. 端口被占用

    • 报错:Cannot bind to port: 2181
    • 解决:lsof -i:2181查看进程,杀死后重启服务
  3. 数据目录权限错误

    • 后果:写入快照失败,日志报Permission denied
    • 解决:设置目录权限为 755:
      chmod -R 755 /opt/installs/zookeeper/zkData  

 

五、老鸟经验:如何验证集群是否正常?

  1. 状态检查

    zk.sh status  # 输出中应有1个Leader和2个Follower  

     

  2. 客户端连接测试

    zkCli.sh -server bigdata01:2181  # 连接任意节点  
    ls /  # 应显示根节点下的默认目录(如zookeeper)  

  3. 集群容错测试

    • 停掉 Leader 节点,观察是否自动选举新 Leader(zk.sh status查看)

 

六、总结

Zookeeper 安装的核心是配置一致性端口规划,而脚本自动化是提升效率的关键。掌握这套流程后,无论是 3 节点还是 100 节点集群,都能轻松部署。

需要完整脚本和配置文件的同学,关注博主并留言「ZK 脚本」即可获取!你在安装中遇到过最奇葩的问题是什么?评论区聊聊,老鸟帮你排雷~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值