- 首页 >
- 问答 >
-
智能运维 >
- 如何使用Linux Zookeeper管理节点
如何使用Linux Zookeeper管理节点
小樊
46
2026-01-03 04:09:47
Linux 下使用 Zookeeper 管理节点
一 准备与连接
- 启动服务:在安装目录的 bin 下执行
./zkServer.sh start
查看状态:./zkServer.sh status
停止服务:./zkServer.sh stop
- 连接客户端:
本地:./zkCli.sh
远程:./zkCli.sh -server IP:2181(默认端口 2181)
连接成功提示符类似:[zk: 127.0.0.1:2181(CONNECTED) 0]。必要时可用 -timeout 5000 设置超时。
二 常用节点管理命令
- 查看与查询
- 列出子节点:ls /path;可加 -s 同时显示状态、加 -w 注册监听、加 -R 递归列出。
- 查看数据:get /path;加 -s 同时显示状态。
- 查看元数据:stat /path。
- 递归查看:ls -R /(示例会列出如 /zookeeper 等系统节点)。
- 创建节点
- 持久节点:create /app/node1 “data”
- 顺序节点:create -s /app/seq “data”(自动追加序号)
- 临时节点:create -e /app/tmp “data”(会话断开自动删除)
- 容器节点:create -c /app/container “data”(子节点清空后会被自动删除)
- 说明:ZooKeeper 路径以 / 开头,不支持相对路径;部分版本支持 -t ttl 创建带过期时间的节点(需启用扩展类型)。
- 更新与删除
- 更新数据:set /app/node1 “new”;可用 -v version 做版本校验(乐观锁)。
- 删除节点:delete /app/node1;递归删除:rmr /app/parent(或 deleteall)。
- 配额管理:setquota -n|-b val /path(配额)、listquota /path(查看)、delquota -n|-b /path(删除配额)。
三 监听与 ACL 要点
- 一次性监听(Watch)
- 子节点变化:ls -w /path
- 数据变化:get -w /path
- 元数据变化:stat -w /path
说明:监听是一次性的,触发后即移除,需要重新注册。
- ACL 权限控制
- 查看:getAcl /path
- 设置:setAcl /path scheme:id:perms
- 常用模式:world(全开放)、ip(按 IP/网段)、digest(用户名:密码的摘要)、auth(已认证用户)
- 常用权限:c(create)、r(read)、w(write)、d(delete)、a(admin)
- 示例:setAcl /app ip:127.0.0.1:cdrwa。
四 实用示例
- 连接并查看根节点
./zkCli.sh -server 127.0.0.1:2181
ls /
get /zookeeper
- 创建顺序节点与临时节点
create -s /demo/seq “hello”
create -e /demo/tmp “session”
- 读取并带状态
get -s /demo/seq
- 条件更新与删除
set -v 0 /demo/seq “world”(如版本不匹配则拒绝)
delete /demo/tmp
rmr /demo/old(递归删除)
五 运维与安全提示
- 递归删除前务必确认路径,生产环境建议先备份或导出子树数据。
- 临时节点不能创建子节点;容器节点适合做“自动清理”的父节点(如分布式锁父节点)。
- 监听是一次性的,关键业务需做好监听重注册与失败重试。
- 合理设置 ACL,避免使用 world:anyone;涉及敏感路径建议采用 digest 或 ip 模式并限制可写范围。
- 版本校验(set/delete 的 -v)能有效避免并发写冲突,但也可能造成操作失败,需结合业务重试策略。