大数据讲课笔记6.2 ZooKeeper数据模型
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据讲课笔记6.2 ZooKeeper数据模型相关的知识,希望对你有一定的参考价值。
文章目录
零、学习目标
- 理解ZK数据存储结构
- 了解Znode的类型和属性
一、导入新课
- 通过上节课的学习,学生已经初步了解了ZooKeeper分布式协调服务,而ZooKeeper中数据存储的结构和标准文件系统是非常类似的。本节课将针对ZooKeeper的数据模型进行详细讲解。
二、新课讲解
(一)数据存储结构
- ZooKeeper的数据存储结构和标准文件系统非常类似,拥有一个层次命名空间,用斜杠进行分割,都采用树形层次结构,那ZooKeeper是由什么组成树呢?
- ZooKeeper是由节点组成的树,树中的每个节点被称为—Znode。每个节点都可以拥有子节点。每一个Znode默认能够存储1MB的数据,每个Znode都可以通过其路径唯一标识,如图中第三层的第一个Znode,,它的路径是/app1/p_1。ZooKeeper数据模型中每个Znode都是由三部分组成,分别是
stat
、data
、children
。
- ZooKeeper有一个最开始的节点(根节点:/)
- ZooKeeper的节点叫做Znode节点
- 每个Znode节点都可存储数据
- 每个Znode节点都可创建自己的子节点
- 多个Znode节点共同形成了Znode树
- Znode树的维系是在内存中,为用户提供快速查询
- 每个Znode节点都是一个路径(通过路径来定位这个节点)
- 每个路径名都是唯一的
(二)Znode的类型
- Znode的类型在创建时被指定,一旦创建就无法改变。Znode有两种类型,分别是临时节点和永久节点。
1、临时节点
- 该生命周期依赖于创建它们的会话,一旦会话结束,临时节点将会被自动删除,也可以手动删除。虽然每个临时的Znode都会绑定一个客户端,但它们对所有的客户端还是可见的。需要注意的是临时节点不允许拥有子节点。
2、永久节点
- 该生命周期不依赖于会话,并且只有在客户端显示执行删除操作的时候,它们才能被删除。
(三)Znode的属性
- ZooKeeper中的每个Znode都包含了一系列的属性,具体属性如下所示。
属性名称 | 属性描述 |
---|---|
czxid | 节点被创建的Zxid值 |
ctime | 节点被创建的时间 |
mzxid | 节点最后一次的修改的Zxid值 |
mtime | 节点最后一次的修改时间 |
pZxid | 与该节点的子节点最后一次修改的Zxid值 |
cversion | 子节点被修改的版本号 |
dataVersion | 数据版本号 |
aclVersion | ACL版本号 |
ephemeralOwner | 如果此节点为临时节点,那么该值代表这个节点拥有者的会话ID;否则值为0 |
dataLength | 节点数据域长度 |
numChildren | 节点拥有的子节点个数 |
- 对于Zookeeper来说,Znode状态改变的每一个操作都将使节点接收到唯一的zxid(Zookeeper Transaction ID)格式的时间戳,并且这个时间戳是全局有序的,通常被称为事物ID,通过zxid,可以确定更新操作的先后顺序,例如,如果zxid1小于zxid2,说明zxid1操作先于zxid2发生。
三、归纳总结
- 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。
四、上机操作
- 形式:单独完成
- 题目:深入了解ZooKeeper数据结构
- 要求:观看尚硅谷大数据视频涉及ZooKeeper数据结构这部分内容,然后撰写一篇学习报告。
以上是关于大数据讲课笔记6.2 ZooKeeper数据模型的主要内容,如果未能解决你的问题,请参考以下文章