0
点赞
收藏
分享

微信扫一扫

大数据学习笔记-------------------(11)

第10章 zookeeper 命令行接口

ZooKeeper命令行接口被用于与zookeeperensemble进行交互。调试、带有不同option的工作是非常有用的。

执行zookeeperCLI操作,首先要启动zookeeper server服务("bin/zkServer.sh"),然后在启动zookeeper的客服端("bin/zkCli.sh")。一旦客服端启动,可以执行下面操作:

Ø  创建 znode

Ø  获取 data

Ø  监视改变的znode

Ø  设置data

Ø  创建znode的 children

Ø  列表中znode的children

Ø  检查状态

Ø  移动/删除znode

上面命令使用的例子

10.1 创建Znodes

创建具有给定路径的znode。flag参数指定是否创建短暂的znode、持续的znode、连续的znode。默认情况下,所有的znodes是永久性的。

Ø  短暂znode(Ephemeral znodes )(标志:E)将在会话过期或当客户端断开连接被自动删除。

Ø  连续znodes(Sequential znodes )确保znode路径是独一无二的。

Ø  ZooKeeperensemble 将添加10位有序数字填充到znode路径。例如,znode路径/myapp将被转换为/myapp0000000001和下一个序列号/myapp0000000002。如果没有指定标志,那么znode被认为是持久的。

a) 创建持久znode

创建Znode的语法:

create  /path  /data

例如:

create  /FirstZnode  “Myfirstzookeeper-app”

输出:

“Created  /FirstZnode”

b)  创建连续znode

 创建一个连续znode,添加-s flag,语法如下:

create  -s  /path /data

例子如下:

create -s  /FirstZnode  second-data

输出:“Created  /FirstZnode0000000023

c)  创建临时znode

创建一个临时znode,添加-e flag,语法:

create  -e  /path /data

例子如下:

create -e  /SecondZnode “Ephemeral-data

输出:“Created  /SecondZnode

当客服端断开连接时,临时znode被删除。通过退出的ZooKeeper客服端,然后重新打开客服端。

10.2获取Data(GetData)

它返回指定znode的元数据和znode相关的数据。将得到信息例如:数据最后修改的时间、数据在哪里被修改、有关数据的信息。

获取数据的语法:

get /path

实例:

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

访问顺序znode,必须输入znode的完整路径,例如:

get /FirstZnode0000000023

输出:


“Second-data”
cZxid = 0x80
ctime = Tue Sep 29 16:25:47 IST 2015
mZxid = 0x80
mtime = Tue Sep 29 16:25:47 IST 2015
pZxid= 0x80
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 13
numChildren= 0


10.3 监视(Watch)

当指定的znode或znode的children的数据变化时,监视显示通知。只能在get命令设置的watch。监视语法:

get /path  [watch]  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命令类似,但是在后代等待znode改变

10.4设置数据(SetData)

设置指定znode的数据。一旦完成这一套操作,可以使用命令行接口的get命令检查数据。设置数据的语法:

set  /path  /data、

实例:

set  /SecondZnode Data-updated

 输出:

 

cZxid= 0x82
ctime = Tue Sep 29 16:29:50 IST2015
mZxid = 0x83
mtime = Tue Sep 29 16:29:50 IST2015
pZxid = 0x82
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner =0x15018b47db00000
dataLength = 14
numChildren = 0


如果给get命令设置了watch选项(和上一条命令一样),则输出将类似于如下所示:

输出:

WATCHER::
WatchedEvent state:SyncConnectedtype:NodeDataChanged path:/FirstZnode
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x84
mtime = Tue Sep 29 17:14:47 IST2015
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0


10.5创建Children/Sub-znode

创建Children类似于创建新的znode。唯一的区别在于,child znode的路径包含parent路径。

语法:

create  /parent/path/subnode/path /data

实例:

create  /FirstZnode/Child1  firstchildren

 输出:"created /FirstZnode/Child1 "

10.6 List Children

此命令用来列出并显示znode的Children。语法:

ls /path

实例:

ls  /MyFirstZnode

输出:"[mysecondsubnode, myfirstsubnode] "

10.7 检查状态(CheckStatus)

Status描述指定znode的元数据。它包含详细信息,如时间戳(Timestamp)版本号(Version Number)、ACL、数据长度、Children znode。

语法:

stat  /path

实例:

stat  /FirstZnode

输出:

 

cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST2015
mZxid = 0x7f
mtime = Tue Sep 29 17:14:24 IST2015
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0


10.8 移走Znode

删除指定的znode并递归所有的children。这将发生如果这种znode是可用的。语法:

rmr /path

实例:

rmr /FirstZnode

输出:

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


 删除(delete /path)命令类似于删除命令,但事实上,它仅适用于no childrenznode

 


举报

相关推荐

0 条评论