Zookeeper命令行常用操作
一、集群管理
zkServer.sh
位于Zookeeper安装目录下的bin/zkServer.sh用于服务器管理,可以启动、停止,以及查看服务状态。
bin/zkServer.sh start #启动
bin/zkServer.sh status #查看服务状态
bin/zkServer.sh stop #停止
zkCli.sh
位于Zookeeper安装目录下的bin/zkCli.sh用于客户端连接到Zookeeper服务。
bin/zkCli.sh -server 127.0.0.1:2181
二、数据操作
接到Zookeeper后可以进行的数据操作都能通过"help"命令查看到,这里用其中几个命令简单演示一下。
create
create命令可以用于创建znode。
create [-s] [-e] path data acl
-e表示创建临时节点,例如:
create -e /zk-test/temporary "test21"

注意,一个临时节点会在会话过期或关闭时自动被删除。刚刚我们在命令行创建的这个znode,如果退出连接然后重新连接,会发现节点已经不存在了。
-s表示创建有序节点,例如:
create -s /zk-test/sequence/task- "task"

自动创建以"task-"为前缀的有序节点,从0000000000开始计数,用10位十进制表示。
get
get命令用于获取节点内容。下图所示的节点存储的内容为"456"。

cZxid - 创建了这个节后,zookeeper为这个节点分配的id
ctime - create time,节点创建的时间
mZxid - 修改后,zookeeper为这个节点分配的id
mtime - 节点修改的时间,当没有修改过,则创建时间和修改时间是一样的
pZxid - 子节点的id
cversion - 子节点的版本号
dataVersion - 当前数据的版本号
aclVersion - 权限版本号
ephemeralOwner - 根据值可区分是否是临时节点
dataLength - 数据的长度
numChildren - 下面有几个子节点
set
set命令用于修改节点内容。

ls
ls命令的作用除了常用的查看znode结构以外,还可以监视znode的子节点的变化情况。
ls path [watch]
例如:
ls /zk-test true
对名为/zk-test的节点设置子节点监听,原本存在temporary, temporary2两个子节点,当用另外一个终端再创建一个名为/zk-test/temporary3的节点时,会检测到子节点的变化。

stat
stat命令可以对节点的变化情况设置监听。
stat path [watch]
例如:
stat /zk-test/temporary true

如上图所示,当我们在某个其他终端已经创建了名为/zk-test/temporary的znode后,再尝试创建同名znode会告诉我们该节点已经存在。于是我们在该节点上设置一个监视点,路径后面添加参数true。当关闭另外一个终端的连接时,该临时节点被删除,我们会观察到NodeDeleted事件的输出,同时/zk-test/temporary节点已经不存在了。现在在此终端可以再次创建名为/zk-test/temporary的znode了。
delete
delete 可以删除znode,注意无法删除一个包含子节点的节点。


浙公网安备 33010602011771号