目录
客户端连接
ZooKeeper 提供了一个交互式命令行客户端工具 zkCli.sh
,用于连接服务并执行操作。
连接方法
- 单机连接
zkCli.sh -server localhost:2181
- 默认端口为 2181。
- 集群连接
zkCli.sh -server 192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181
- 用逗号分隔多个服务器地址。
- 指定超时(可选)
zkCli.sh -timeout 5000 -server localhost:2181
-timeout
以毫秒为单位设置会话超时。
连接成功后,进入交互模式,提示符为 [zk: ...]
。
基础命令概览
以下是 ZooKeeper 客户端支持的主要命令类别:
- 创建节点:
create
- 读取数据:
ls
、get
、stat
- 修改数据:
set
- 删除节点:
delete
、rmr
- 其他:
help
、quit
常用命令详解与示例
以下是常用命令的详细说明和示例。
1. 创建节点 (create
)
- 语法:
create [-s] [-e] [-c] [-t ttl] path data [acl]
- 选项:
-s
:顺序节点。-e
:临时节点。-c
:容器节点(3.5.3+)。-t ttl
:设置 TTL(3.6.0+,需配置支持)。
示例:
create /myNode "Hello ZooKeeper" # 创建持久节点
create -e /tempNode "temp data" # 创建临时节点
create -s /seqNode "seq data" # 创建顺序节点
输出:
Created /myNode
Created /tempNode
Created /seqNode0000000001
2. 列出子节点 (ls
)
- 语法:
ls [-w] path
- 选项:
-w
添加 Watcher 监听子节点变化。
示例:
ls /
输出(假设已创建上述节点):
[myNode, tempNode, seqNode0000000001]
3. 获取节点数据 (get
)
- 语法:
get [-w] path
- 选项:
-w
添加 Watcher 监听数据变化。
示例:
get /myNode
输出:
Hello ZooKeeper
[元数据信息]
4. 查看节点状态 (stat
)
- 语法:
stat path
- 功能:显示节点元数据,不返回数据内容。
示例:
stat /myNode
输出:
cZxid = 0x100000002
ctime = Wed Mar 28 10:00:00 UTC 2025
mZxid = 0x100000002
mtime = Wed Mar 28 10:00:00 UTC 2025
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 14
numChildren = 0
5. 修改节点数据 (set
)
- 语法:
set path data [version]
- 参数:
version
用于乐观锁,需匹配当前版本。
示例:
set /myNode "Updated Data"
get /myNode
输出:
Updated Data
6. 删除节点 (delete
)
- 语法:
delete path [version]
- 限制:只能删除无子节点的节点。
示例:
delete /myNode
7. 递归删除 (rmr
)
- 语法:
rmr path
- 功能:删除节点及其所有子节点(已废弃,推荐
deleteall
)。
示例:
create /parent/child "child data"
rmr /parent
ls /
输出:/parent
已删除。
8. 查看帮助 (help
)
- 语法:
help
- 功能:列出所有可用命令。
示例:
help
命令行技巧
- 自动补全
在交互模式下,按Tab
键可补全命令或路径。 - 查看历史命令
使用上下箭头键切换历史输入。 - 批量操作
将命令写入脚本文件(如commands.txt
),然后运行:
zkCli.sh -server localhost:2181 < commands.txt
- 退出客户端
quit
- 监控 Watcher 事件
使用-w
参数添加 Watcher,事件触发时会显示通知。例如:
ls -w /
创建新节点时,客户端会收到通知。
参考资料
- ZooKeeper 官方文档 – CLI – 官方命令行指南。
- ZooKeeper Programmer’s Guide – 客户端操作说明。
- Baeldung – ZooKeeper CLI – 命令行基础教程。
- Apache ZooKeeper FAQ – 常见问题解答。
这是 ZooKeeper 客户端基础命令的完整使用指南,涵盖了创建、读取、修改和删除操作。如果您需要更复杂的命令组合或特定场景的示例,请告诉我!
发表回复