大数据讲课笔记6.2 ZooKeeper数据模型

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据讲课笔记6.2 ZooKeeper数据模型相关的知识,希望对你有一定的参考价值。

文章目录

零、学习目标

  1. 理解ZK数据存储结构
  2. 了解Znode的类型和属性

一、导入新课

  • 通过上节课的学习,学生已经初步了解了ZooKeeper分布式协调服务,而ZooKeeper中数据存储的结构和标准文件系统是非常类似的。本节课将针对ZooKeeper的数据模型进行详细讲解。

二、新课讲解

(一)数据存储结构

  • ZooKeeper的数据存储结构和标准文件系统非常类似,拥有一个层次命名空间,用斜杠进行分割,都采用树形层次结构,那ZooKeeper是由什么组成树呢?
  • ZooKeeper是由节点组成的树,树中的每个节点被称为—Znode。每个节点都可以拥有子节点。每一个Znode默认能够存储1MB的数据,每个Znode都可以通过其路径唯一标识,如图中第三层的第一个Znode,,它的路径是/app1/p_1。ZooKeeper数据模型中每个Znode都是由三部分组成,分别是statdatachildren
  1. ZooKeeper有一个最开始的节点(根节点:/)
  2. ZooKeeper的节点叫做Znode节点
  3. 每个Znode节点都可存储数据
  4. 每个Znode节点都可创建自己的子节点
  5. 多个Znode节点共同形成了Znode树
  6. Znode树的维系是在内存中,为用户提供快速查询
  7. 每个Znode节点都是一个路径(通过路径来定位这个节点)
  8. 每个路径名都是唯一的

(二)Znode的类型

  • Znode的类型在创建时被指定,一旦创建就无法改变。Znode有两种类型,分别是临时节点和永久节点。

1、临时节点

  • 该生命周期依赖于创建它们的会话,一旦会话结束,临时节点将会被自动删除,也可以手动删除。虽然每个临时的Znode都会绑定一个客户端,但它们对所有的客户端还是可见的。需要注意的是临时节点不允许拥有子节点。

2、永久节点

  • 该生命周期不依赖于会话,并且只有在客户端显示执行删除操作的时候,它们才能被删除。

(三)Znode的属性

  • ZooKeeper中的每个Znode都包含了一系列的属性,具体属性如下所示。
属性名称属性描述
czxid节点被创建的Zxid值
ctime节点被创建的时间
mzxid节点最后一次的修改的Zxid值
mtime节点最后一次的修改时间
pZxid与该节点的子节点最后一次修改的Zxid值
cversion子节点被修改的版本号
dataVersion数据版本号
aclVersionACL版本号
ephemeralOwner如果此节点为临时节点,那么该值代表这个节点拥有者的会话ID;否则值为0
dataLength节点数据域长度
numChildren节点拥有的子节点个数
  • 对于Zookeeper来说,Znode状态改变的每一个操作都将使节点接收到唯一的zxid(Zookeeper Transaction ID)格式的时间戳,并且这个时间戳是全局有序的,通常被称为事物ID,通过zxid,可以确定更新操作的先后顺序,例如,如果zxid1小于zxid2,说明zxid1操作先于zxid2发生。

三、归纳总结

  • 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。

四、上机操作

  • 形式:单独完成
  • 题目:深入了解ZooKeeper数据结构
  • 要求:观看尚硅谷大数据视频涉及ZooKeeper数据结构这部分内容,然后撰写一篇学习报告。

以上是关于大数据讲课笔记6.2 ZooKeeper数据模型的主要内容,如果未能解决你的问题,请参考以下文章

大数据讲课笔记6.4 ZooKeeper分布式集群部署

大数据讲课笔记6.4 ZooKeeper分布式集群部署

大数据讲课笔记6.5 ZooKeeper的Shell操作

大数据讲课笔记6.5 ZooKeeper的Shell操作

大数据讲课笔记6.6 ZooKeeper的Java API操作

大数据讲课笔记6.6 ZooKeeper的Java API操作