3.7 客户端命令行操作
我们可以使用客户端去操作 znode
. (其实就是远程操作 Zookeeper Server
)
注意:
znode
都是存储在 Zookeeper 服务器上的.
1. 启动客户端并连接到 Zookeeper 服务器
zkCli.sh # 默认连接到当前的Zookeeper服务器
# zkCli.sh -server hadoop201:2181 # 连接到指定的Zookeeper服务器
2. 显示所有操作命令
help
3. 查看根znode
中所包含的内容
ls /
4. 查看根znode
中节点数据更新次数等数据
ls2 /
stat
结构说明: cZxid:这是导致创建znode更改的事务ID。 mZxid:这是最后修改znode更改的事务ID。 pZxid:这是用于添加或删除子节点的znode更改的事务ID。 ctime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode创建时间。 mtime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode最近修改时间。 dataVersion:表示对该znode的数据所做的更改次数。 cversion:这表示对此znode的子节点进行的更改次数。 aclVersion:表示对此znode的ACL进行更改的次数。 ephemeralOwner:如果znode是ephemeral类型节点,则这是znode所有者的 session ID。 如果znode不是ephemeral节点,则该字段设置为零。 dataLength:这是znode数据字段的长度。 numChildren:这表示znode的子节点的数量。
5. 创建普通节点(持久节点)
creat /app1 "hello app1"
说明:
app1
是节点名hello app1
是这个节点中存储的数据(上限大小是1M
)
create /app1/server201 "192.168.1.201"
6. 获得节点的值
get /app1
7. 创建短暂节点
create -e /app-temp "temp data ...."
注意:
- 只要创建临时节点的会话(session)没有关闭, 不仅仅当前客户端可以看访问到临时节点, 使用其他客户端也是可以看到这个临时节点.
- 临时节点不能有子节点
- 关闭会话之后, 临时节点自动被删除
8. 创建带序号的节点
- 先创建一个比普通节点
app2
create /app2 "my name is app2"
- 在
app2
内创建带序号的节点create -s /app2/aa "123455679"
说明:
- 没创建一个带序号的节点, 序号都会自增1.
序号的含义表示这个带序号的节点是他父节点的第几个节点.
创建
/app3
,/app3/a
,-e /app3/b
然后创建-s /app3/cc
, 则序号从2
开始.
9. 修改节点中存储的数据
set /app1 "new data"
10. 监听节点中数据的变化
在
201
主机上的客户端监听:get /app1 watch
在
203
主机上的客户端修改数据在
201
主机的客户端收到的数据变化的通知
11. 监听节点结构的变化
- 在
201
主机上的客户端监听:ls /app1 watch
- 在
203
主机上的客户端给/app1
添加新的节点
- 在
201
主机的客户端收到的数据变化的通知
12. 删除空节点
delete /app1/server201
注意:
delte
只能删除空节点(没有子节点的节点)不能删除非空节点
13. 递归的删除节点
递归的方式删除节点, 空节点和非空节点都可以删除.
rmr /app1
14. 查看某个节点的状态
stat /app2