Zookeeper 简明教程
Zookeeper - CLI
ZooKeeper命令行界面(CLI)用于出于开发目的与ZooKeeper组合进行交互。这对于调试和与不同选项协同工作很有用。
若要执行ZooKeeper CLI操作,请首先启用ZooKeeper服务器(“bin/zkServer.sh start”),然后启用ZooKeeper客户端(“bin/zkCli.sh”)。客户端启动后,你可以执行以下操作−
-
Create znodes
-
Get data
-
Watch znode for changes
-
Set data
-
创建znode的子项
-
列出znode的子项
-
Check Status
-
移除/删除一个znode
现在让我们逐个查看以上命令,并使用一个示例。
Create Znodes
使用给定的路径创建一个znode。 flag 参数指定创建的znode为临时性、持久性还是连续性。默认情况下,所有znode都是持久的。
-
Ephemeral znodes (标志:e)将在会话过期或客户端断开连接时自动删除。
-
Sequential znodes 保证znode路径的唯一性。
-
ZooKeeper组合会将序列号与10位填充内容添加到znode路径。例如,znode路径/myapp将转换为/myapp0000000001,下一个序列号将是/myapp0000000002。如果未指定标志,那么znode将被视为 persistent 。
Output
[zk: localhost:2181(CONNECTED) 0] create /FirstZnode “Myfirstzookeeper-app”
Created /FirstZnode
要创建一个 Sequential znode ,添加 -s flag ,如下所示。
Get Data
它返回与指定节点相关联的数据和元数据。你将获得一些信息,例如数据最后一次修改的时间、以及修改的地点,和有关数据的信息。此 CLI 还用于分配监视,以显示有关数据的通知。
Output
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x7f
mtime = Tue Sep 29 16:15:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0
要访问序列节点,你必须输入节点的完整路径。
Watch
监视在指定节点或节点的子节点数据发生更改时显示通知。你只能在 get 命令中设置 watch 。
Output
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode 1
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x7f
mtime = Tue Sep 29 16:15:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0
输出类似于正常的 get 命令,但它将在后台等待节点更改。<从这里开始>
Set Data
设置指定节点的数据。完成此设置操作后,你可以使用 get CLI 命令检查数据。
Output
[zk: localhost:2181(CONNECTED) 1] get /SecondZnode “Data-updated”
cZxid = 0x82
ctime = Tue Sep 29 16:29:50 IST 2015
mZxid = 0x83
mtime = Tue Sep 29 16:29:50 IST 2015
pZxid = 0x82
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x15018b47db00000
dataLength = 14
numChildren = 0
如果你在 get 命令中分配了 children 选项(如前一个命令中所示),则输出将类似于如下所示:
Output
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode “Mysecondzookeeper-app”
WATCHER: :
WatchedEvent state:SyncConnected type:NodeDataChanged path:/FirstZnode
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x84
mtime = Tue Sep 29 17:14:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0