2018-08-07 | Zookeeper | UNLOCK

Zookeeper入门(三)

为了方便,我这搭建的只是一个伪集群环境

2888 表示 心跳检测端口

3888 表示 领导选举,用于投票的端口

2.使用命令行客户端连接Zookeeper

$ bin/zkCli.sh 会出现以下信息
image

表示成功连接, 若是想连接别的服务器上的zookeeper 则 使用如下命令:

$ bin/zkCli.sh -server :

好了,我们来通过命令行来操作zookeeper吧。

我不知道命令啊???? 没关系, 叫help(帮助)

image

以上命令大多数是针对ZNode节点进行操作

1.列出子节点
命令格式: ls path [watch]

那么我们先列出根节点的所有子节点:
image

默认根节点下有一个 zookeeper的子节点,它作为Zookeeper的保留节点,我们一般不使用它

另外我们还可以使用 ls2

来看看
image

cZxid : 表示节点创建时的事务ID (每个客户点的请求都会形成一个事务)

ctime : 表示节点创建的时间

mZxid : 表示最后一次修改节点的事务ID

mtime : 最后一次修改节点的时间

pZxid : 表示最后一次修改父节点的事务ID

cversion : 表示子节点的版本号

dataVersion : 表示节点所包含数据的版本号(每个数据都有自己的版本,它与节点的版本不一样)

aclVersion : 表示节点的ACL 权限版本号(权限也有自己的版本)

ephemeralOwner : 表示临时会话的ID

dataLength : 表示节点所包含的数据内容长度

numChildren : 表示当前节点的子节点数

以上信息都称为 Stat(统计)

2.判断子节点是否存在
判断foo 节点是否存在

stat /foo

image

可以看出 该节点不存在

3.创建节点
create [-s] [-e] path data acl

-s 用于指定该节点是否为顺序节点

-c 用于指定该节点是否为临时节点

最后一个acl 用于权限控制 zookeeper 内部提供了一个Access Contronl List(访问权限控制列表,简称ACL),默认情况下不做任何权限控制.

我们来创建一个 hello的节点 数据内容为 hello world
image

创建成功!

4.获取节点
get path [watch]
image

即可获得 该节点的 Stat信息

5.更新节点信息
set path data [version]
image

大家可以看到Stat信息产生了变化 版本从0变成了1 其它数据也产生了变化

6.删除节点
delete path [version]
image

该命令执行后不会有任何提示,注意只有该节点没有子节点时才能删除成功,否则将给出”Node not empty”

但是我们可以通过 rmr path 一次性删除该节点及下面的所有子节点

下次继续分享 通过java 来操作Zookeeper!

评论加载中