大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
07-ZooKeeper-znode 结构详解
Zookeeper
2022-10-17 19:47:21
28
0
0
bigdata
Zookeeper
# 数据模型 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 bin 目录,通过 sh zkCli.sh 打开命令行终端,执行 "ls /" 命令显示: ```bash [zk: localhost:2181(CONNECTED) 0] ls / [nbu, zookeeper] [zk: localhost:2181(CONNECTED) 1] ls /zookeeper [config, quota] [zk: localhost:2181(CONNECTED) 2] ls /zookeeper/quota ```  我们直观的看到此时存储的数据在根目录下存在 nbu 和 zookeeper 两个节点,zookeeper 节点下存在 quota 这个节点。  nbu 节点是在我们之前章节创建,并且通过 java 客户端设置值 0,现在我们在命令行终端执行 get /runoob 显示此节点的属性。 ```bash [zk: localhost:2181(CONNECTED) 3] get /nbu ```  其中显示的 0 是该节点的 value 值。 # Znode 的状态属性 <table><thead><tr><th>cZxid</th><th>创建节点时的事务 ID</th></tr></thead><tbody><tr><td>ctime</td><td>创建节点时的时间</td></tr><tr><td>mZxid</td><td>最后修改节点时的事务 ID</td></tr><tr><td>mtime</td><td>最后修改节点时的时间</td></tr><tr><td>pZxid</td><td>表示该节点的子节点列表最后一次修改的事务 ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该 ID<strong>(注意,只有子节点列表变更了才会变更 pzxid,子节点内容变更不会影响 pzxid)</strong></td></tr><tr><td>cversion</td><td>子节点版本号,子节点每次修改版本号加 1</td></tr><tr><td>dataversion</td><td>数据版本号,数据每次修改该版本号加 1</td></tr><tr><td>aclversion</td><td>权限版本号,权限每次修改该版本号加 1</td></tr><tr><td>ephemeralOwner</td><td>创建该临时节点的会话的 sessionID。<strong>(*</strong>* 如果该节点是持久节点,那么这个属性值为 0)**</td></tr><tr><td>dataLength</td><td>该节点的数据长度</td></tr><tr><td>numChildren</td><td>该节点拥有子节点的数量<strong>(只统计直接子节点的数量)</strong></td></tr></tbody></table> 了解上面状态属性值,我们对 **/runoob** 节点做一次修改,执行命令 set /runoob 1 ,如下图所示: ```bash [zk: localhost:2181(CONNECTED) 5] get /nbu [zk: localhost:2181(CONNECTED) 6] stat /nbu ```  对比上面结果,可以看到 mZxid、mtime、dataVersion 都发生了变化。 在 **/nbu** 节点下,我们再添加一子节点,执行: ```bash [zk: localhost:2181(CONNECTED) 7] create -e /nbu/child 0 Created /nbu/child [zk: localhost:2181(CONNECTED) 8] get /nbu 1 [zk: localhost:2181(CONNECTED) 9] stat /nbu ``` **提示:**更多命令使用后面章节会详解介绍。 执行完终端命令行显示:  可见 **/nbu** 节点的 pZxid、cversion、numChildren 都发生了相应的改变。 可尝试再创建子节点child1 观察节点版本变化 ```bash [zk: localhost:2181(CONNECTED) 10] create -e /nbu/child1 0 ```
上一篇:
07-Neo4j关系基础
下一篇:
08 openGauss数据库备份恢复指导手册
文档导航