zookeeper 之简单操作

ZooKeeper的数据模型及其API支持以下九个基本操作:
这里写图片描述
我们来使用ZooKeeper Java shell对上面中提到的ZooKeeper操作进行演示:

用ThisIsTheRootNode作为数据创建一个名为root的znode:

[zk: localhost(CONNECTED) 0] create /root "ThisIsTheRootNode"
Created /root

获取刚创建的root的znode的内容:

[zk: localhost(CONNECTED) 1] get /root
"ThisIsTheRootNode"

用ThisIsChild-1作为数据为root创建一个名为child-1的子节点:

[zk: localhost(CONNECTED) 2] create /root/child-1 "ThisIsChild-1"
Created /root/child-1

用ThisIsChild-2作为数据为root创建一个名为child-2的子节点:

[zk: localhost(CONNECTED) 3] create /root/child-2 "ThisIsChild-2"
Created /root/child-2

列出root的子节点:

[zk: localhost(CONNECTED) 4] ls /root
[child-2, child-1]

获取root的访问控制列表:

[zk: localhost(CONNECTED) 5] getAcl /root
'world,'anyone
: cdrwa

由于root拥有2个子节点,所以不允许删除root:

[zk: localhost(CONNECTED) 6] delete /root
Node not empty: /root

删除子节点child-1:

[zk: localhost(CONNECTED) 7] delete /root/child-1

删除子节点child-2:

[zk: localhost(CONNECTED) 8] delete /root/child-2

列出root的内容:

[zk: localhost(CONNECTED) 9] ls2 /root
[]

删除root:

[zk: localhost(CONNECTED) 10] delete /root

ZooKeeper命名空间中的每个znode都有一个与之关联的stat结构,类似于Unix/Linux文件系统中文件的stat结构。 znode的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的子节点的数量。

在ZooKeeper Java shell中,可以使用stat或ls命令查看znode的stat结构。 具体说明如下:

  • 使用stat命令查看znode的stat结构:
[zk: localhost(CONNECTED) 23] stat /znode
cZxid = 0x200000024
ctime = Sat Jun 09 14:55:42 CST 2018
mZxid = 0x200000024
mtime = Sat Jun 09 14:55:42 CST 2018
pZxid = 0x200000026
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 14
numChildren = 2
  • 使用ls2命令查看znode的stat结构:
[zk: localhost(CONNECTED) 27] ls -s /znode
[child-1, child-2]cZxid = 0x200000024
ctime = Sat Jun 09 14:55:42 CST 2018
mZxid = 0x200000024
mtime = Sat Jun 09 14:55:42 CST 2018
pZxid = 0x200000026
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 14
numChildren = 2

猜你喜欢

转载自blog.csdn.net/weixin_41558061/article/details/80634523
今日推荐