温馨提示×

Zookeeper节点管理在Linux上如何操作

小樊
40
2025-11-28 20:18:34
栏目: 智能运维

Linux下 Zookeeper 节点管理实操指南

一 环境准备与连接

  • 进入安装目录的 bin 目录,常见路径如:/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin
  • 启动服务:执行 ./zkServer.sh start;查看状态:执行 ./zkServer.sh status;停止服务:执行 ./zkServer.sh stop
  • 连接本地客户端:执行 ./zkCli.sh;连接指定主机与端口:执行 ./zkCli.sh -server 192.168.1.10:2181
  • 退出客户端:执行 quit
  • 提示:Zookeeper 默认客户端端口为 2181

二 常用节点管理命令

  • 创建节点
    • 持久节点:create /app “hello”
    • 持久有序节点:create -s /app/seq “data”(自动追加序号)
    • 临时节点:create -e /app/tmp “tmp”(会话结束自动删除)
    • 临时有序节点:create -s -e /app/tmp-seq “tmp”
    • 容器节点:create -c /app/container(子节点清空后会被自动删除)
  • 读取与查看
    • 读数据:get /app
    • 读数据并显示状态:get -s /app
    • 查看元数据:stat /app
    • 列子节点:ls /ls -R /(递归)
  • 更新与删除
    • 更新数据:set /app “new”;可按版本更新:set -v 2 /app “new”
    • 删除节点:delete /app/seq;递归删除:deleteall /app(旧版本亦可用 rmr /app
  • 版本条件删除
    • 先取版本:get -s /app 得到 dataVersion,再删除:delete -v /app
  • 说明
    • 路径必须以 / 开头;临时节点不能创建子节点;容器节点用于容纳子节点,子节点清空后会被删除。

三 监听与事件

  • 监听节点数据变化:get -w /app
  • 监听子节点列表变化:ls -w /app
  • 监听节点元数据变化:stat -w /app
  • 一次性监听说明:Watcher 触发后即移除,如需持续监听需重新注册。
  • 常见事件类型:NodeCreated、NodeDeleted、NodeDataChanged、NodeChildrenChanged

四 ACL 权限管理

  • 查看 ACL:getAcl /app
  • 设置 world 权限:setAcl /app world:anyone:cdrwa
  • 设置 IP 白名单:setAcl /app ip:192.168.60.129:cdrwa,ip:192.168.60.130:cdrwa
  • 基于 Digest 认证设置 ACL:
    • 先登录:addauth digest itcast:123456
    • 再授权:setAcl /app auth:itcast:cdrwa
  • 权限字符含义:c(create) r(read) w(write) d(delete) a(admin)

五 常见问题与排查

  • 节点不存在或创建失败:路径需以 / 开头,且父节点必须存在(例如先 create /app,再 create /app/child)。
  • 删除失败:有子节点时不可直接 delete,需先删除子节点或使用 deleteall;旧版本可用 rmr
  • 会话过期导致节点消失:临时节点 -e 与会话绑定,退出或超时即被删除。
  • 认证失败:对受保护路径操作前先 addauth digest user:pass 或使用正确 setAcl
  • 查看错误日志:服务端启动日志默认写入执行目录的 zookeeper.out,可用 tail -f zookeeper.out 排查。

0