ZooKeeper 是一个分布式协调服务,它的客户端命令行工具(zkCli.sh 或 zkCli.cmd)提供了一系列常用命令,用于操作和管理 ZooKeeper 服务中的数据节点(ZNode)。以下是对 ZooKeeper 客户端常用命令的简要介绍,假设你已经通过命令(如 zkCli.sh -server 127.0.0.1:2181)连接到 ZooKeeper 服务:
window 上安装zookeeper:已经安装好scoop的可以用scoop直接安装zookeeper
scoop install zookeeper
基础命令
-
ls /path- 功能: 列出指定路径下的子节点。
- 示例:
ls /zookeeper - 说明: 显示
/zookeeper路径下的所有子节点名称,但不包括子节点的数据。
-
get /path- 功能: 获取指定路径节点的数据和元信息。
- 示例:
get /zookeeper/config - 说明: 返回节点存储的数据以及状态信息(如版本号、时间戳等)。
-
create /path data- 功能: 创建一个新节点并为其赋值。
- 示例:
create /test "mydata" - 说明: 在
/test路径下创建一个节点,数据为 “mydata”。可以选择创建持久节点(默认)或临时节点(加-e参数,例如create -e /temp "tempdata")。
-
set /path data- 功能: 修改指定节点的数据。
- 示例:
set /test "newdata" - 说明: 将
/test节点的数据更新为 “newdata”。
-
delete /path- 功能: 删除指定节点。
- 示例:
delete /test - 说明: 删除
/test节点,前提是该节点没有子节点。如果有子节点,需先删除子节点或使用递归删除。
-
rmr /path- 功能: 递归删除指定节点及其所有子节点。
- 示例:
rmr /test - 说明: 类似
delete,但会删除整个节点树(已废弃,建议用deleteall)。
-
deleteall /path- 功能: 递归删除指定路径及其子节点。
- 示例:
deleteall /test - 说明: 替代
rmr,更现代的用法。
节点类型相关
-
create -e /path data- 功能: 创建临时节点(Ephemeral Node)。
- 示例:
create -e /temp "tempdata" - 说明: 临时节点在客户端会话断开后自动删除。
-
create -s /path data- 功能: 创建顺序节点(Sequential Node)。
- 示例:
create -s /seq "seqdata" - 说明: 创建的节点名会自动追加一个递增的序列号,例如
/seq0000000001。
查看与管理
-
stat /path- 功能: 查看指定节点的元数据(不包含数据内容)。
- 示例:
stat /zookeeper - 说明: 显示节点的版本号、创建时间、修改时间、子节点数量等信息。
-
ls2 /path- 功能: 列出子节点并显示节点状态(已废弃)。
- 示例:
ls2 /zookeeper - 说明: 相当于
ls和stat的组合,但在新版本中建议分别使用ls和stat。
-
history- 功能: 显示最近执行的命令历史。
- 说明: 方便查看之前的操作。
-
quit- 功能: 退出 ZooKeeper 客户端。
- 示例:
quit - 说明: 断开与 ZooKeeper 服务器的连接。
其他实用命令
-
connect host:port- 功能: 连接到指定的 ZooKeeper 服务器。
- 示例:
connect 127.0.0.1:2181 - 说明: 在客户端会话中切换连接的服务器。
-
close- 功能: 关闭当前会话。
- 说明: 关闭与服务器的连接,但不退出客户端。
注意事项
- 路径规则: ZooKeeper 使用类似文件系统的路径结构,根路径为
/,所有操作都基于绝对路径。 - 节点类型: 支持持久节点(Persistent)、临时节点(Ephemeral)、顺序节点(Sequential)等,需根据需求选择。
- 权限: 如果启用了 ACL(访问控制列表),部分命令可能需要认证。
这些命令是 ZooKeeper 客户端操作的核心,适用于调试、管理和测试场景。如果你有具体的使用场景或想深入某个命令,我可以进一步展开!
