命令行操作Zookeeper
通过前两篇我们已经搭建了一个伪集群模式的Zookeeper服务,下面我们使用命令行对zookeeper进行操作。
1. 使用命令行客户端连接Zookeeper服务
进入zookp_01,zookp_02,zookp_03中的一个,然后进入bin文件夹,启动命令行脚本zkCli.sh,不输入ip默认会连接本机服务。
sh zkCli.sh
sh zkCli.sh -server localhost:2181
# 上面两个命令连接的服务是相同的,都会连接zookp_01
# 若要连接其他两个服务,切换端口即可,如:
sh zkCli.sh -server localhost:2182
sh zkCli.sh -server localhost:2183
# 启动客户端连接服务
cd /zookp_cluster/server_cluster/zookp_01/bin
sh zkCli.sh
2. 查看指定节点信息(ls 命令)
# 查看指定节点有哪些直系子节点
ls 节点路径
# 查看节点的详细信息
ls -s 节点路径
# 具体使用如下
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
# 只显示直系子节点
[zk: localhost:2181(CONNECTED) 1] ls /zookeeper
[config, quota]
[zk: localhost:2181(CONNECTED) 2] ls -s /zookeeper/config
[]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Sep 29 13:38:16 CST 2022
pZxid = 0x0
cversion = 0
dataVersion = -1
aclVersion = -1
ephemeralOwner = 0x0
dataLength = 153
numChildren = 0
[zk: localhost:2181(CONNECTED) 3] ls -s /zookeeper/quota
[]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
[zk: localhost:2181(CONNECTED) 4] ls -s /zookeeper
[config, quota]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
节点信息说明(以 /zookeeper 为例)
节点信息 | 说明 |
[config, quota] | 直系子节点 |
cZxid = 0x0 | 创建节点的事务id |
ctime = Thu Jan 01 08:00:00 CST 1970 | 节点的创建时间 /zookeeper是自带的数据节点,1970是默认的时间 |
mZxid = 0x0 | 最近一次修改节点的事务id |
mtime = Thu Jan 01 08:00:00 CST 1970 | 最近一次修改时间 |
pZxid = 0x0 | 子节点的事务id |
cversion = -2 | 创建节点的版本 |
dataVersion = 0 | 数据版本 |
aclVersion = 0 | 权限控制的版本 |
ephemeralOwner = 0x0 | 是否是临时节点 |
dataLength = 0 | 数据长度 |
numChildren = 2 | 直系子节点个数 |
3. 创建节点(create 命令)
# 命令格式 create [-s | -e] 节点路径 节点数据
[zk: localhost:2181(CONNECTED) 5] create /Demmo test
Created /Demmo
[zk: localhost:2181(CONNECTED) 6] create -s /Seq_Demo test
Created /Seq_Demo0000000012
[zk: localhost:2181(CONNECTED) 7] create -e /Eph_Demo test
Created /Eph_Demo
[zk: localhost:2181(CONNECTED) 8] create -s -e /Seq_Eph_Demo test
Created /Seq_Eph_Demo0000000014
# 查看当前根节点下的子节点
[zk: localhost:2181(CONNECTED) 9] ls /
[Demmo, Eph_Demo, Seq_Demo0000000012, Seq_Eph_Demo0000000014, zookeeper]
命令说明
命令 | 说明 |
create /Demmo test | 不带参数默认创建持久节点 |
create -s /Seq_Demo test | 创建持久顺序节点,节点名后面自动生成一个由父节点维护的整数,该数字自增,每在该父节点下创建一个子节点加1 |
create -e /Eph_Demo test | 创建临时节点,客户端会话结束,就被删除 |
create -s -e /Seq_Eph_Demo test | 创建临时顺节点 |
退出客户端,重新连接,可以看到临时节点被删除了
[zk: localhost:2181(CONNECTED) 10] quit
# 重新连接
sh zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[Demmo, Seq_Demo0000000012, zookeeper]
4. 获取节点数据(get 命令)
# 命令格式:get 节点路径
[zk: localhost:2181(CONNECTED) 1] get /Demmo
test
[zk: localhost:2181(CONNECTED) 2]
5. 修改节点数据(set 命令)
# 命令格式:set 节点路径 更新的数据
[zk: localhost:2181(CONNECTED) 1] get /Demmo
test
[zk: localhost:2181(CONNECTED) 2] set /Demmo demo
[zk: localhost:2181(CONNECTED) 3] get /Demmo
demo
[zk: localhost:2181(CONNECTED) 4]
6. 删除节点(delete 命令)
# 命令格式: delete 节点路径
[zk: localhost:2181(CONNECTED) 5] ls /
[Demmo, Seq_Demo0000000012, zookeeper]
[zk: localhost:2181(CONNECTED) 6] delete /Demmo
[zk: localhost:2181(CONNECTED) 7] ls /
[Seq_Demo0000000012, zookeeper]
[zk: localhost:2181(CONNECTED) 8]