大数据讲课笔记6.2zookeeper数据模型(代码片段)

howard2005 howard2005     2022-10-23     482

关键词:

文章目录

零、学习目标

  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.5zookeeper的shell操作

...零、学习目标一、导入新课二、新课讲解(一)ZooKeeperShell概述(二)通过Shell命令操作ZooKeeper1、显示所有操作命令2、查看当前ZK内容3、查看当前节点数据4、创建节点5、获取节点6、修改节点7、监听节点8、删除... 查看详情

大数据讲课笔记6.6zookeeper的javaapi操作(代码片段)

...零、学习目标一、导入新课二、新课讲解(一)ZooKeeperJavaAPI概述1、ZooKeeperJavaAPI包含五个包2、ZooKeeper类常用方法(二)通过JavaAPI操作ZooKeeper1、创建Maven项目2、添加相关依赖3、创建类实现功能(1)测试连... 查看详情

大数据讲课笔记6.6zookeeper的javaapi操作(代码片段)

...零、学习目标一、导入新课二、新课讲解(一)ZooKeeperJavaAPI概述1、ZooKeeperJavaAPI包含五个包2、ZooKeeper类常用方法(二)通过JavaAPI操作ZooKeeper1、创建Maven项目2、添加相关依赖3、创建类实现功能(1)测试连... 查看详情

大数据讲课笔记6.4zookeeper分布式集群部署(代码片段)

...零、学习目标一、导入新课二、新课讲解(一)ZooKeeper分布式集群部署(二)下载解压ZooKeeper安装包1、下载ZooKeeper安装包2、上传ZooKeeper安装包3、解压ZooKeeper安装包(三)ZooKeeper相关配置1、在master虚拟机... 查看详情

2022年大数据讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

2022年大数据基础讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

2022年大数据基础讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

大数据讲课笔记5.1初探mapreduce(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)MapReduce核心思想(二)MapReduce编程模型(三)MapReduce编程实例——词频统计1、词频统计设计思路(1)Map阶段(2)Reduce阶段2、词频统... 查看详情

大数据讲课笔记1.4进程管理(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)进程概述1、基本概念2、三维度看待进程3、引入多进程模型4、进程的产生和消亡(1)进程的产生(2)进程的消亡5、进程三种状态6、进程ID(PID... 查看详情

大数据讲课笔记2.2大数据应用场景

...、学习目标一、导入新课二、新课讲解(一)大数据在医疗行业的应用1、优化医疗方案,提供最佳治疗方法2、有效预防预测疾病(二)大数据在金融行业的应用1、精准营销2、风险管控3、决策支持4、服务创... 查看详情

django讲课笔记08:定义商城的数据模型(代码片段)

...五、拓展内容零、本讲学习目标掌握模型的定义掌握创建数据表的命令掌握数据迁移的命令一、课程导入(一)复习视图模板路由路由分发(二)ORMORM(ObjectRelationMapping)框架是一 查看详情

大数据讲课笔记2.3初探hadoop世界

...、新课讲解(一)Hadoop的前世今生1、Google处理大数据三大技术2、Hadoop如何诞生3、Hadoop主要发展历程(二)Hadoop的优势1、扩容能力强2、成本低3、高效率4、可靠性5、高容错性(三)Hadoop的生态体系1、HDFS... 查看详情

大数据讲课笔记4.1hdfs基本概念(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)HFDS的演变(二)HDFS的基本概念1、NameNode(名称节点)2、DataNode(数据节点)3、Block(数据块)4、Rack(机架)5、Metadata( 查看详情

sqlserver讲课笔记04:创建与管理数据库

文章目录一、数据库设计(一)概念设计(二)逻辑设计1、将E-R图转换成关系数据模型2、要对关系数据模型进行规范化(三)物理设计二、创建数据库(一)数据库文件类型1、主数据文件(primaryfile)2、次数据文件(secondaryfil... 查看详情

大数据讲课笔记5.6mr案例—数据去重(代码片段)

...标一、导入新课二、新课讲解(一)案例分析1、数据去重介绍2、案例需求及分析(二)案例实现1、Map阶段实现2、Reduce阶段实现3、Driver程序主类实现4、效果测试三、归纳总结四、上机操作零、学习目标理解数据... 查看详情

大数据讲课笔记5.4mapreduce运行模式(代码片段)

...式2、集群运行模式(二)MapReduce性能优化策略1、数据输入2、Map阶段3、Reduce阶段4、Shuffle阶段5、其它调优属性三、归纳总结四、上机操作零、学习目标了解MapReduce运行模式理解MapReduce性能优化策略一、导入新课通过 查看详情

大数据讲课笔记1.8shell基础(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)shell概述1、了解shell的含义2、Linux中shell存在形式3、shell如何执行用户指令(二)常用shell命令1、管道命令(1)命令概述(2)命令格式(... 查看详情

大数据讲课笔记4.2hdfs架构和原理

...#xff09;HDFS存储架构(二)HDFS文件读写原理1、HDFS写数据原理2、HDFS读数据原理三、归纳总结四、上机操作零、学习目标了解HDFS存储架构理解HDFS文件读写原理一、导入新课通过上次课的学习,学生对HDFS有了一定的认识&#... 查看详情