11.2.2 单机版安装与验证

单机版安装与验证#

安装目标与版本选择#

  • 目标:在单机环境快速搭建 ZooKeeper,完成启动、连接、CRUD 验证
  • 建议版本:ZooKeeper 3.7/3.8,JDK 8/11(统一版本避免冲突)
  • 目录规划:安装目录与数据目录分离,便于升级与排障

架构原理草图(单机)#

文章图片

获取与解压#

下载与解压示例#

# 1) 下载(以 3.8.4 为例)
cd /opt
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

# 2) 解压并软链接
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz
ln -s /opt/apache-zookeeper-3.8.4-bin /opt/zookeeper

# 3) 创建数据目录
mkdir -p /data/zookeeper

基础配置#

配置文件示例#

# 复制默认配置
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
# /opt/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/data/zookeeper
clientPort=2181
initLimit=10
syncLimit=5

# 可选:将事务日志与快照分离
# dataLogDir=/data/zookeeper/log

参数解释(命令式简述)#

  • tickTime:心跳时间基准,单位 ms
  • dataDir:快照与事务日志默认目录
  • clientPort:客户端连接端口
  • initLimit/syncLimit:选举与同步超时阈值

启动与停止#

启动、停止与状态检查#

# 启动
/opt/zookeeper/bin/zkServer.sh start

# 查看状态
/opt/zookeeper/bin/zkServer.sh status
# 预期输出包含:Mode: standalone

# 停止
/opt/zookeeper/bin/zkServer.sh stop

命令解释#

  • zkServer.sh start:后台启动服务进程
  • zkServer.sh status:检查服务模式与运行状态
  • zkServer.sh stop:优雅停止服务

单机验证#

客户端连接与 CRUD 示例#

# 连接本地服务
/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
# 在 zkCli 中执行
create /test "hello"
get /test
set /test "world"
delete /test
ls /

预期效果#

  • get /test 返回 hello/world
  • ls / 能看到自建节点

日志与运行检查#

运行状态检查命令#

# 端口监听
ss -lntp | grep 2181

# 进程检查
ps -ef | grep -E "zookeeper|QuorumPeerMain"

# 日志查看
ls -lh /opt/zookeeper/logs/
tail -n 50 /opt/zookeeper/logs/zookeeper-*.log

常见问题快速定位(含排错示例)#

1) 端口被占用#

# 定位占用进程
ss -lntp | grep 2181
# 停止占用进程或修改 clientPort

2) JAVA_HOME 未设置#

# 查看 Java 版本
java -version

# 设置环境变量(示例)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH

3) dataDir 无权限#

# 修复权限
chown -R root:root /data/zookeeper
chmod -R 755 /data/zookeeper

验收标准#

  • zkServer.sh status 显示 Mode: standalone
  • zkCli 可正常连接并完成 CRUD
  • 日志无持续性 ERROR/Exception

练习与自测#

  1. 修改 clientPort 为 2182,重新启动并使用 zkCli.sh -server 127.0.0.1:2182 连接验证。
  2. dataLogDir 独立到 /data/zookeeper/log,观察目录变化。
  3. 手动杀掉 ZooKeeper 进程后,观察日志与状态变化,再重新启动恢复。