ZooKeeper进阶之客户端命令行操作
一 Znode数据结构
ZK有一个最开始的节点 /
ZK的节点叫做znode节点
每个znode节点都可存储数据
每个znode节点(临时节点除外)都可创建自己的子节点
多个znode节点共同形成了znode树
Znode树的维系是在内存中,目的是供用户快速的查询。定期会做持久化,保存磁盘上,数据更加安全。
每个znode节点都是一个路径(通过路径来定位这个节点)
每个路径名都是唯一的。
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进阶之客户端命令行操作相关推荐
- linux下zookeeper启动命令,For Linux Zookeeper客户端命令行操作指令
目录 客户端命令行操作 1.启动客户端 2.停止客户端 3.显示所有操作命令 4.查看当前节点信息 ls ~ 详细信息 ls2 5.分别创建两个普通节点 6.获取节点的值 7.创建短暂节点 ~ cr ...
- Zookeeper之客户端命令行操作
Zookeeper客户端命令行操作 节点类型: 启动客户端 [codecat@hadoop103 zookeeper-3.5.9]$ zkCli.sh 显示所有操作命令 [zk: localhost: ...
- Zookeeper的简介及命令行操作
目录 前言 1.Zookeeper简介 2.Zookeeper结构 3.Zookeeper常用的命令行操作 总结: 目录 前言 作为一款第三方的协调服务框架,ZK被应用在许多地方,如:Hbase中用于 ...
- linux怎么看zk的版本号,zookeeper基本特性与基于Linux的ZK客户端命令行学习
zookeeper常用命令行操作 通过 zkCli.sh 来打开zk客户端: [root@study-01 ~]# zkCli.sh [zk: localhost:2181(CONNECTED) 0] ...
- zookeeper常用命令行操作
zookeeper常用命令行操作 输入help显示命令提示 [zk: localhost:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd ...
- zookeeper教程,docker 安装,命令,python操作zookeeper,分布式队列,分布式锁
docker安装zookeeper服务端 首先安装单节点的服务端,如果安装多节点的服务端,需要为每个节点配置其他节点的地址. docker run --privileged=true -d --nam ...
- pgsql(PostgreSQL)常用命令行操作
PostgreSQL常用命令行操作 注意 注意有些命令要以;结尾,有些不用(一般是 \命令 的不用) 不以;结尾的命令相当于未换行 允许一次性粘贴执行多行命令 登录 # 切换用户 (必须先切换到pos ...
- Hive 本地模式,远程模式模式的搭建、命令行操作、Hive JDBC操作
追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 下载安装包,解压到合适位置: Hive 本地模式的搭建 一.配置相关的文件: 二.安装并配置MySQL 三.配置Hi ...
- kafka 基础概念、命令行操作(查看所有topic、创建topic、删除topic、查看某个Topic的详情、修改分区数、发送消息、消费消息、 查看消费者组 、更新消费者的偏移位置)
文章目录 前言 1. 基础概念 Broker Producer Consumer Consumer Group Topic Partition Replica 2. 命令行操作 2.1 查看所有top ...
最新文章
- 一张A4纸的牛B变化(你能吗?)
- sublime使用技巧总结
- 数据结构-树2-二叉树各种函数实现
- 线性表之链式存储结构_单链表相关算法
- ch8 ProviderDemo
- CronTrigger说明
- 主板检测卡常见错误代码:00(FF)
- 解决 mac系统下sublime imput 函数交互问题
- Windows“控制面板”在哪?win10怎么打开控制面板(快捷方法)打开控制面板的多种方法都在这里
- 郑州大学计算机翟雨轩,郑州大学文件-20210331220732.doc-原创力文档
- angular 使用ngx-quill
- windows 2003 系统优化参考
- 软件测试才是系统级别错误,软件测试部BUG级别定义
- 公交线路查询系统 C++实现 图
- 如何使用groupby函数对数据进行分组(1)
- 路由器以太网口静态链路聚合
- 后端获取不到axios.post提交的参数
- 一起学习 “PS”(1、移动工具)
- Arduino与Proteus仿真实例-Nokia5110显示屏驱动仿真
- java二进制转为汉字_Java 实现中文与二进制代码互转