03、Zookeeper 常用命令

Zookeeper 常用命令

  • 1.ls 命令
  • 2.create 命令
  • 3.get 命令
  • 4.set 命令
  • 5.delete 命令

1.ls 命令

命令格式:

  • ls /path

功能描述:

  • 使用ls命令可以查看Zookeeper中指定路径下的子节点列表。
  • 在ZooKeeper的shell客户端中,你需要提供一个路径来查看它下面的子节点。
  • 例如,ls /会列出Zookeeper根路径下的子节点。

代码示例:

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, myPath, anotherNode]

这条命令列出了根目录(/)下所有的子节点,包括zookeeper(系统保留节点)、myPathanotherNode

2.create 命令

命令格式:

  • create [-e] [-s] /path [data]

功能描述:

  • create命令用于在Zookeeper中创建一个新的znode。
  • -e选项表示创建的是一个临时节点,这种类型的节点会在创建它的客户端会话结束时被自动删除。
  • -s选项表示创建的是一个顺序节点,Zookeeper会自动在节点名后面增加一个递增的数字。
  • /path是节点的路径。
  • [data]是存储在节点中的数据。

代码示例:

[zk: localhost:2181(CONNECTED) 1] create /test "123"
Created /test

[zk: localhost:2181(CONNECTED) 2] create -e /temp "ephemeral data"
Created /temp

[zk: localhost:2181(CONNECTED) 3] create -s /sequenceNode "seq data"
Created /sequenceNode0000000000

第一个命令创建了一个名为/test的持久节点,并附带了数据"123"
第二个命令创建了一个名为/temp的临时节点,带有数据"ephemeral data"
最后一个命令创建了一个名为/sequenceNode0000000000的顺序节点,并附带了数据"seq data"(真实创建的节点名会根据现有的节点数目自动增加序号)。

3.get 命令

命令格式:

  • get /path

功能描述:

  • get命令用于获取指定znode的数据内容和元数据信息。
  • /path是节点的路径。

代码示例:

[zk: localhost:2181(CONNECTED) 4] get /test
"123"
cZxid = 0x7a
ctime = Tue Aug 10 10:00:00 UTC 2021
mZxid = 0x7a
mtime = Tue Aug 10 10:00:00 UTC 2021
pZxid = 0x7a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

这个命令返回了/test节点的数据("123")以及节点的详细元数据信息。

4.set 命令

命令格式:

  • set /path data

功能描述:

  • set命令用于更新指定znode的数据内容。
  • /path是节点的路径。
  • data是要更新到节点的新数据。

代码示例:

[zk: localhost:2181(CONNECTED) 5] set /test "new data"
cZxid = 0x7a
ctime = Tue Aug 10 10:00:00 UTC 2021
mZxid = 0x7b
mtime = Tue Aug 10 10:01:00 UTC 2021
pZxid = 0x7a
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0

以上命令将/test节点的数据更新为"new data"。

5.delete 命令

命令格式:

  • delete /path

功能描述:

  • delete命令用于删除指定的znode。
  • /path是需要被删除的节点的路径。

代码示例:

[zk: localhost:2181(CONNECTED) 6] delete /test

这条命令将会删除/test节点。需要注意的是,你只能删除没有子节点的znode。如果尝试删除有子节点的znode,操作将会失败,并且会收到一个错误提示。