简介

ZooKeeper命令行界面(CLI)用于与ZooKeeper进行交互以用于开发目的。它对于调试很有用。

要执行ZooKeeper CLI操作,首先打开你的ZooKeeper服务器(“bin / zkServer.sh start”),然后打开ZooKeeper客户端(“bin / zkCli.sh”)。一旦客户端启动,可以执行以下操作 -

  • 创建znode
  • 获取数据
  • 观察znode的变化
  • 设置数据
  • 创建znode的子节点
  • 列出znode的子节点
  • 检查状态
  • 删除/删除znode

现在让我们用一个例子逐个看看上面的命令。

创建Znodes

创建具有给定路径的znode。该默认情况下,所有znode都是持久的。

语法

create /path /data

Example

create /FirstZnode “Myfirstzookeeper-app”

输出

[zk: localhost:2181(CONNECTED) 0] create /FirstZnode “Myfirstzookeeper-app”
Created /FirstZnode

获取数据

它返回指定znode及关联数据。包含上次修改数据的时间,修改的位置以及有关数据的信息。

语法

get /path 

Example

get /FirstZnode

输出

[zk: localhost:2181(CONNECTED) 1] get /FirstZnode
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0

Watch

当指定的znode或znode的子数据更改时,watch会显示通知。只能在get命令中设置watch。

语法

get /path [watch] 1

Example

get /FirstZnode 1

输出

[zk: localhost:2181(CONNECTED) 1] get /FirstZnode 1
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0

输出类似于正常的get命令,但它会在后台等待znode更改。

设置数据

设置指定znode的数据。完成此设置操作后,可以使用get CLI命令检查数据。

语法

set /path /data

Example

set /SecondZnode Data-updated

输出

[zk: localhost:2181(CONNECTED) 1] get /SecondZnode “Data-updated”
cZxid = 0x82
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x83
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x82
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x15018b47db00000
dataLength = 14
numChildren = 0

如果你在get命令中指定了watch选项(如在上一个命令中),那么输出将类似于如下所示 -

输出

[zk: localhost:2181(CONNECTED) 1] get /FirstZnode “Mysecondzookeeper-app”

WATCHER: :

WatchedEvent state:SyncConnected type:NodeDataChanged path:/FirstZnode
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x84
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0

创建子节点

创建子节点类似于创建新的znode。唯一的区别是子节点znode的路径也将具有父路径。

语法

create /parent/path/subnode/path /data

Example

create /FirstZnode/Child1 firstchildren

输出

[zk: localhost:2181(CONNECTED) 16] create /FirstZnode/Child1 “firstchildren”
created /FirstZnode/Child1
[zk: localhost:2181(CONNECTED) 17] create /FirstZnode/Child2 “secondchildren”
created /FirstZnode/Child2

  

列出子节点

此命令用于列出和显示znode 的节点。

语法

ls /path

Example

ls /MyFirstZnode

输出

[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode
[mysecondsubnode, myfirstsubnode]

  

检查状态

状态描述指定znode的元数据。它包含详细信息,如时间戳,版本号,ACL,数据长度和子节点znode。

语法

stat /path

Example

stat /FirstZnode

输出

[zk: localhost:2181(CONNECTED) 1] stat /FirstZnode
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0

  

删除Znode

删除指定的znode并递归地删除其所有子节点。这将发生只有这样的znode可用。

语法

rmr /path

Example

rmr /FirstZnode

输出

[zk: localhost:2181(CONNECTED) 10] rmr /FirstZnode
[zk: localhost:2181(CONNECTED) 11] get /FirstZnode
Node does not exist: /FirstZnode

Delete (delete /path) 命令类似于remove命令,只适用于没有子节点的znode。

zookeepercli - Command Line Interface for ZooKeeper的更多相关文章

  1. MySQL 5.6 Warning: Using a password on the command line interface can be insecure

    MySQL 5.6 在命令行输入密码,就会提示这些安全警告信息. Warning: Using a password on the command line interface can be inse ...

  2. MySQL 5.6 警告信息 command line interface can be insecure 修复

    在命令行输入密码,就会提示这些安全警告信息. Warning: Using a password on the command line interface can be insecure.   注: ...

  3. atprogram.exe : Atmel Studio Command Line Interface

    C:\Program Files\Atmel\Atmel Studio 6.1\atbackend\atprogram.exe No command specified.Atmel Studio Co ...

  4. Centos下_MysqL5.7在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.

    在阿里云服务器增加一个shell脚本定时备份数据库脚本执行任务时,测试性的执行了备份命令,如下 [root@iZ2ze503xw2q1fftv5rhboZ mysql_bak]# /usr/local ...

  5. Warning: Using a password on the command line interface can be insecure.

    [root@qttc ~]# /usr/local/mysql/bin/mysqldump  -uroot -proot db > bak.sqlWarning: Using a passwor ...

  6. mysql 备份报错mysqldump: [Warning] Using a password on the command line interface can be insecure.

    -------------------------------------------------------------------------------- mysql 备份报错mysqldump ...

  7. vue-cli 脚手架 Command Line Interface

    mac sudo npm install -g nrm sudo npm config -g set unsafe-perm sudo npm install webpack@3.0.0 -g sud ...

  8. MYSQL5.7脚本运行时出现[Warning] Using a password on the command line interface can be insecure

    MYSQL版本:5.7 在写linux脚本执行MYSQL命令的时候,如果使用 MYSQL="mysql -hlocalhost -P3306 -uroot -p666666" 登陆 ...

  9. 消除Warning: Using a password on the command line interface can be insecure的提示

    最近在部署Zabbix时需要用脚本取得一些MySQL的返回参数,需要是numberic格式的,但是调用脚本时总是输出这一句: Warning: Using a password on the comm ...

随机推荐

  1. mysql锁表与不锁表设置主从复制的方法

    有时候MySQL主从同步不一致比较严重的时候,需要手动同步.先说说在锁表的情况下如何操作:以下是其简要过程 1.先对主库锁表FLUSH TABLES WITH READ LOCK; 2.备份数据mys ...

  2. saltstack自动化运维系列11基于etcd的saltstack的自动化扩容

    saltstack自动化运维系列11基于etcd的saltstack的自动化扩容 自动化运维-基于etcd加saltstack的自动化扩容# tar -xf etcd-v2.2.1-linux-amd ...

  3. 关于XMLHttpRequest状态的讨论及处理方法

    今天主要是讨论下XMLHttpRequest的响应状态问题.我们知道,XMLHttpRequest的响应阶段有5个,分别是: 请求未初始化 服务器连接已建立 请求已接收 请求处理中 请求已完成,且响应 ...

  4. Oracle数据库操作基本语法

    创建表 SQL>create table classes(        classId number(2),        cname varchar2(40),        birthda ...

  5. 02-第一个JavaScript代码

    在页面中,我们可以在body标签中放入<script type=”text/javascript”></script>标签对儿,<script type=”text/ja ...

  6. [PHP] 链表数据结构(单链表)

    链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个程序运行时,内存分成五个区(堆区, ...

  7. tensorflow-安装

    1.pip安装(最好在虚拟环境中安装) →更新pip:pip install --upgrade pip →安装最新版tensorflow(GPU):pip install tensorflow-gp ...

  8. hdu3015树状数组 poj1990的离散化版本

    都是一类题目,推导调试比较烦,想出来还是不难的 /* 给定n个点对,按一维升序排序一次,每个点的序号为Di,按二维升序排序一次,每个点的序号为Hi 求sum{w(i,j)} w(i,j)=abs(Di ...

  9. 利用js键盘事件制作会移动效果

    会移动的方块 描述 按键盘上的方向键方块会移动,按住alt键和方向键进行大幅度移动 <!DOCTYPE html> <html lang="en"> < ...

  10. DDD领域模型实现依赖注入(六)

    添加下订单的值对象: public partial class CustomerInfo:ValueObject { /// <summary> /// 下订单的值对象 /// </ ...