11.2.2 单机版安装与验证
单机版安装与验证#
安装目标与版本选择#
- 目标:在单机环境快速搭建 ZooKeeper,完成启动、连接、CRUD 验证
- 建议版本:ZooKeeper 3.7/3.8,JDK 8/11(统一版本避免冲突)
- 目录规划:安装目录与数据目录分离,便于升级与排障
架构原理草图(单机)#
获取与解压#
下载与解压示例#
cd /opt
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz
ln -s /opt/apache-zookeeper-3.8.4-bin /opt/zookeeper
mkdir -p /data/zookeeper
基础配置#
配置文件示例#
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/data/zookeeper
clientPort=2181
initLimit=10
syncLimit=5
参数解释(命令式简述)#
tickTime:心跳时间基准,单位 ms
dataDir:快照与事务日志默认目录
clientPort:客户端连接端口
initLimit/syncLimit:选举与同步超时阈值
启动与停止#
启动、停止与状态检查#
/opt/zookeeper/bin/zkServer.sh start
/opt/zookeeper/bin/zkServer.sh status
/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
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 -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
练习与自测#
- 修改
clientPort 为 2182,重新启动并使用 zkCli.sh -server 127.0.0.1:2182 连接验证。
- 将
dataLogDir 独立到 /data/zookeeper/log,观察目录变化。
- 手动杀掉 ZooKeeper 进程后,观察日志与状态变化,再重新启动恢复。