ZooKeeper 初体验

Posted finley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZooKeeper 初体验相关的知识,希望对你有一定的参考价值。

安装Zookeeper

Mac OS

Mac 用户可以使用 Homebrew 安装和管理 Zookeeper 服务:

brew install zookeeper

配置文件地址在: /usr/local/etc/zookeeper。

启动 zookeeper 服务:

brew services start zookeeper

进入命令行客户端zkCli:

zkCli

默认连接localhost:2181, 手动指定服务地址:

zkCli -server localhost:2181

Docker

可以使用官方提供的Docker镜像快速启动Zookeeper。

启动服务端:

docker run --name my_zookeeper -d zookeeper

ZNode 操作

使用终端工具ZkCli连接:

docker run -it --rm --link my_zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

命令行客户端 zkCli 可以交互式操作 Zookeeper, 其命令风格类似于 Unix 终端。

ls

查看某个路径包含的所有节点:

[zk: localhost:2181(CONNECTED) 1] ls /
[cluster, zookeeper, admin, config]
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper
[quota]

ls2

查看某个路径包含的所有节点,以及节点元数据:

[zk: localhost:2181(CONNECTED) 7] ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

create

创建节点:

[zk: localhost:2181(CONNECTED) 0] create /test 1
Created /test

/test为创建节点的路径,1为Znode的数据data

create 命令无法递归创建节点,即/test节点不存在时不能直接创建/test/t1

使用-e 选项创建临时节点:

[zk: localhost:2181(CONNECTED) 0] create -e /test/t2 t2
Created /test/t2
[zk: localhost:2181(CONNECTED) 1] get /test/t2
t2
[zk: localhost:2181(CONNECTED) 2] quit
Quitting...
[zk: localhost:2181(CONNECTED) 0] get /test/t2
Node does not exist: /test/t2

退出zkCli后重新进入,临时节点已经消失。

get

获取节点数据与元数据:

[zk: localhost:2181(CONNECTED) 8] get /test
1
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d28
mtime = Sat Sep 01 16:04:08 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

set

更改节点数据:

[zk: localhost:2181(CONNECTED) 9] set /test 2
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d2a
mtime = Sat Sep 01 16:25:46 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

可以注意到版本号发生了变化。

delete

删除节点:

[zk: localhost:2181(CONNECTED) 2] delete /test

只能删除没有子节点的Znode,若要将子节点一同删除需使用rmr命令。

以上是关于ZooKeeper 初体验的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 连接 ZooKeeper之初体验

Zookeeper 初体验之——伪分布式安装(转)

kafka-zk-安装测试初体验

vs code初体验

猿创征文|[Zookeeper]快速上手Zookeeper.Zookeeper的初识别,安装,znode节点的理解,常用命令,Wacher机制,ACL权限控制及上述功能在idea的代码实现

python初体验