zookeeper 客户端常用命令
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 客户端操作的核心,适用于调试、管理和测试场景。如果你有具体的使用场景或想深入某个命令,我可以进一步展开!