一 Znode数据结构

  1. ZK有一个最开始的节点 /

  2. ZK的节点叫做znode节点

  3. 每个znode节点都可存储数据

  4. 每个znode节点(临时节点除外)都可创建自己的子节点

  5. 多个znode节点共同形成了znode树

  6. Znode树的维系是在内存中,目的是供用户快速的查询。定期会做持久化,保存磁盘上,数据更加安全。

  7. 每个znode节点都是一个路径(通过路径来定位这个节点)

  8. 每个路径名都是唯一的。

1.1 目录结构

层次的,目录型结构,便于管理逻辑关系

znode信息

  • 包含最大1MB的数据信息

  • 记录了zxid等元数据信息

1.2 节点类型

znode有两种类型,临时的(ephemeral)和持久的(persistent)

znode支持序列SEQUENTIAL
临时znode

客户端会话结束时,ZooKeeper将该临时znode删除,临时znode没有子节点

持久znode

不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除,znode的类型在创建时确定并且之后不能再修改

有序znode节点被分配唯一单调递增的整数。比如:客户端创建有序znode,路径为/task/task-,则ZooKeeper为其分配序号1,并追加到znode节点:/task/task-000000001。有序znode节点唯一,同时也可根据该序号查看znode创建顺序。
znode有四种形式的目录节点

  • PERSISTENT:普通持久

  • EPHEMERAL:普通临时

  • PERSISTENT_SEQUENTIAL:顺序持久

  • EPHEMERAL_SEQUENTIAL:顺序临时

要想执行以下指令,需要先启动zk服务器端,再启动zk客户端

./zkServer.sh start:启动zk服务器端

./zkCli.sh:启动zk客户端

二 客户端命令行操作

命令基本语法 功能描述
help 显示所有操作命令
ls path 使用 ls 命令来查看当前znode的子节点
-w 监听子节点变化
-s 附加次级信息
create 普通创建
-s 含有序列
-e 临时(重启或者超时消失)
get path 获得节点的值
-w 监听节点内容变化
-s 附加次级信息
set 设置节点的具体值
stat 查看节点状态
delete 删除节点
deleteall 递归删除节点
quit 退出客户端

1.启动三个节点上ZKServer,然后在某一个节点上启动一个客户端

#node2、node3、node4上同时执行命令
zkServer.sh start
#node2、node3、node4查看启动的状态
zkServer.sh status
#在node4上启动一个客户端
[root@node4 ~]# zkCli.sh

2.help显示所有的命令

[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd argsaddauth scheme authclose config [-c] [-w] [-s]connect host:portcreate [-s] [-e] [-c] [-t ttl] path [data] [acl]delete [-v version] pathdeleteall pathdelquota [-n|-b] pathget [-s] [-w] pathgetAcl [-s] pathhistory listquota pathls [-s] [-w] [-R] pathls2 path [watch]printwatches on|offquit reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]redo cmdnoremovewatches path [-c|-d|-a] [-l]rmr pathset [-s] [-v version] path datasetAcl [-s] [-v version] [-R] path aclsetquota -n|-b val pathstat [-w] pathsync path

3.查看指定节点下的所有内容

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]

4.查看指定节点详细信息以及它的子节点

[zk: localhost:2181(CONNECTED) 2] ls2 /
'ls2' has been deprecated. Please use 'ls [-s] path' instead.
[zookeeper]
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
[zk: localhost:2181(CONNECTED) 3] ls -s /
[zookeeper] #表示 节点 /下的子节点
#以下信息为节点/的详细信息
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

5.监听查看,创建节点

#node4
[zk: localhost:2181(CONNECTED) 4] ls -w /
[zookeeper]
#node3
[zk: localhost:2181(CONNECTED) 0] create /wzyy "phone game"
Created /wzyy
#node4上的变化
[zk: localhost:2181(CONNECTED) 5]
WATCHER::WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/

6.获取节点信息

[zk: localhost:2181(CONNECTED) 4] get /wzyy
phone game

7.获取节点的详细信息

[zk: localhost:2181(CONNECTED) 5] get -s /wzyy
phone game #节点中保存的数据,可以保存1MB的数据
cZxid = 0x300000005 #创建事务id。3(它是0000 0003省略表示方式)表示Leader改变过三次。
ctime = Mon Sep 13 09:42:19 CST 2021 #该节点的创建时间
mZxid = 0x300000005 #修改的事务id,创建后没有被修改过,使用创建时的事务id
mtime = Mon Sep 13 09:42:19 CST 2021 #修改此节点的时间,没有被修改过,使用时创建的时间
pZxid = 0x300000005 #记录子级节点的最大事务id
cversion = 0
dataVersion = 0 #数据的版本号,每改一次该节点的数据,版本号加1
aclVersion = 0
ephemeralOwner = 0x0 #该节点对应的session的id
dataLength = 10 #节点中数据的长度
numChildren = 0 #该节点下子级节点的数量

8.创建普通临时节点

#创建临时节点
[zk: localhost:2181(CONNECTED) 14] create -e /wzyy/test 'qqq'
Created /wzyy/test
[zk: localhost:2181(CONNECTED) 15] ls /wzyy
[fashi, sheshou, test]
[zk: localhost:2181(CONNECTED) 15] quit
[root@node3 ~]# zkCli.sh
[zk: localhost:2181(CONNECTED) 15] ls /wzyy
[fashi, sheshou] #发现子节点test小时

9.创建顺序节点

#创建普通顺序节点
[zk: localhost:2181(CONNECTED) 1] create -s /wzyy/zhanshi 'putongshunxu'
Created /wzyy/zhanshi0000000003
[zk: localhost:2181(CONNECTED) 2] create -s /wzyy/zhanshi 'putongshunxu2'
Created /wzyy/zhanshi0000000004
[zk: localhost:2181(CONNECTED) 3] ls /wzyy
[fashi, sheshou, zhanshi0000000003, zhanshi0000000004]
#创建临时顺序节点
[zk: localhost:2181(CONNECTED) 4] create -s -e /wzyy/tanke 'se1'
Created /wzyy/tanke0000000005

10.修改节点的值

[zk: localhost:2181(CONNECTED) 10] get /wzyy/fashi
yuancheng
[zk: localhost:2181(CONNECTED) 11] set /wzyy/fashi "yuancheng_edit"
[zk: localhost:2181(CONNECTED) 12] get /wzyy/fashi
yuancheng_edit

11.监控节点值的变化

#node4
[zk: localhost:2181(CONNECTED) 6] get -w /wzyy/fashi
yuancheng_edit
#node3上
[zk: localhost:2181(CONNECTED) 13] set /wzyy/fashi "yuancheng_update"
#node4
[zk: localhost:2181(CONNECTED) 7]
WATCHER::WatchedEvent state:SyncConnected type:NodeDataChanged path:/wzyy/fashi

12.删除节点

[zk: localhost:2181(CONNECTED) 14] ls /wzyy
[fashi, sheshou, tanke0000000005, zhanshi0000000003, zhanshi0000000004]
[zk: localhost:2181(CONNECTED) 15] delete /wzyy/zhanshi0000000004
[zk: localhost:2181(CONNECTED) 16] ls /wzyy
[fashi, sheshou, tanke0000000005, zhanshi0000000003]

13.递归删除

[zk: localhost:2181(CONNECTED) 18] ls /wzyy/fashi
[wangzhaojun]
[zk: localhost:2181(CONNECTED) 19] delete /wzyy/fashi
Node not empty: /wzyy/fashi
[zk: localhost:2181(CONNECTED) 20] rmr /wzyy/fashi #deleteall /wzyy/fashi
#建议使用deleteall进行递归删除
The command 'rmr' has been deprecated. Please use 'deleteall' instead.
[zk: localhost:2181(CONNECTED) 21] ls /wzyy
[sheshou, tanke0000000005, zhanshi0000000003]

14.查看节点的状态

[zk: localhost:2181(CONNECTED) 22] stat /wzyy
cZxid = 0x300000005
ctime = Mon Sep 13 09:42:19 CST 2021
mZxid = 0x300000005
mtime = Mon Sep 13 09:42:19 CST 2021
pZxid = 0x300000015
cversion = 9
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 3

ZooKeeper进阶之客户端命令行操作相关推荐

  1. linux下zookeeper启动命令,For Linux Zookeeper客户端命令行操作指令

    目录 客户端命令行操作 1.启动客户端 2.停止客户端 3.显示所有操作命令 4.查看当前节点信息 ls ~ 详细信息  ls2 5.分别创建两个普通节点 6.获取节点的值 7.创建短暂节点 ~ cr ...

  2. Zookeeper之客户端命令行操作

    Zookeeper客户端命令行操作 节点类型: 启动客户端 [codecat@hadoop103 zookeeper-3.5.9]$ zkCli.sh 显示所有操作命令 [zk: localhost: ...

  3. Zookeeper的简介及命令行操作

    目录 前言 1.Zookeeper简介 2.Zookeeper结构 3.Zookeeper常用的命令行操作 总结: 目录 前言 作为一款第三方的协调服务框架,ZK被应用在许多地方,如:Hbase中用于 ...

  4. linux怎么看zk的版本号,zookeeper基本特性与基于Linux的ZK客户端命令行学习

    zookeeper常用命令行操作 通过 zkCli.sh 来打开zk客户端: [root@study-01 ~]# zkCli.sh [zk: localhost:2181(CONNECTED) 0] ...

  5. zookeeper常用命令行操作

    zookeeper常用命令行操作 输入help显示命令提示 [zk: localhost:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd ...

  6. zookeeper教程,docker 安装,命令,python操作zookeeper,分布式队列,分布式锁

    docker安装zookeeper服务端 首先安装单节点的服务端,如果安装多节点的服务端,需要为每个节点配置其他节点的地址. docker run --privileged=true -d --nam ...

  7. pgsql(PostgreSQL)常用命令行操作

    PostgreSQL常用命令行操作 注意 注意有些命令要以;结尾,有些不用(一般是 \命令 的不用) 不以;结尾的命令相当于未换行 允许一次性粘贴执行多行命令 登录 # 切换用户 (必须先切换到pos ...

  8. Hive 本地模式,远程模式模式的搭建、命令行操作、Hive JDBC操作

    追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 下载安装包,解压到合适位置: Hive 本地模式的搭建 一.配置相关的文件: 二.安装并配置MySQL 三.配置Hi ...

  9. kafka 基础概念、命令行操作(查看所有topic、创建topic、删除topic、查看某个Topic的详情、修改分区数、发送消息、消费消息、 查看消费者组 、更新消费者的偏移位置)

    文章目录 前言 1. 基础概念 Broker Producer Consumer Consumer Group Topic Partition Replica 2. 命令行操作 2.1 查看所有top ...

最新文章

  1. 一张A4纸的牛B变化(你能吗?)
  2. sublime使用技巧总结
  3. 数据结构-树2-二叉树各种函数实现
  4. 线性表之链式存储结构_单链表相关算法
  5. ch8 ProviderDemo
  6. CronTrigger说明
  7. 主板检测卡常见错误代码:00(FF)
  8. 解决 mac系统下sublime imput 函数交互问题
  9. Windows“控制面板”在哪?win10怎么打开控制面板(快捷方法)打开控制面板的多种方法都在这里
  10. 郑州大学计算机翟雨轩,郑州大学文件-20210331220732.doc-原创力文档
  11. angular 使用ngx-quill
  12. windows 2003 系统优化参考
  13. 软件测试才是系统级别错误,软件测试部BUG级别定义
  14. 公交线路查询系统 C++实现 图
  15. 如何使用groupby函数对数据进行分组(1)
  16. 路由器以太网口静态链路聚合
  17. 后端获取不到axios.post提交的参数
  18. 一起学习 “PS”(1、移动工具)
  19. Arduino与Proteus仿真实例-Nokia5110显示屏驱动仿真
  20. java二进制转为汉字_Java 实现中文与二进制代码互转

热门文章

  1. java-Book类
  2. python中gbk是什么意思_用gbk比utf-8的好处是什么?
  3. 在office visio中插入用PS处理的照片,照片显示不出来/显示空白
  4. 短视频美颜sdk为什么会爆火?
  5. 物联网时代来袭,智能快递柜到底方便了谁?
  6. 吐血整理,Ubuntu必备应用推荐,满满的干货!
  7. BootStrap 导航栏实现下滑消失,上滑出现
  8. HBase中RegionServer宕机恢复介绍
  9. CSS动画 图片或者文字上下来回循环上下移动
  10. 不同类型的云计算专业知识,推荐几本专业云计算技术书籍