全国咨询/投诉热线:400-618-4000

Znode储存结构是怎样的?节点类型有几种?

更新时间:2020年11月03日16时23分 来源:传智播客 浏览次数:

      Zookeeper的底层是一套数据储存结构,其中的节点,我们称之为znode。Zookeeper中数据存储的结构和标准文件系统非常类似,拥有一个层次的命名空间,也是使用斜杠(/)进行分割,两者都是采用树形层次结构。不同的是,标准文件系统是由文件夹和文件来组成的树,而Zookeeper是由什么来组成的树呢?下面我们来看一下Zookeeper数据存储结构,如图1所示。
 图1 Zookeeper数据模型
  从图2可知,Zookeeper是由节点组成的树,树中的每个节点被称为—Znode。每个节点都可以拥有子节点。每一个Znode默认能够存储1MB的数据,每个Znode都可以通过其路径唯一标识,如图5-2中第三层的第一个Znode~~,~~,它的路径是/app1/p_1。Zookeeper数据模型中的每个Znode都是由三部分组成,分别是stat(状态信息,描述该Znode的版本,权限信息等组成)、data(与该Znode关联的数据)、children(该Znode下的子节点)。
  Znode有两种类型,分别是临时节点和永久节点。
  临时节点,该生命周期依赖于创建它们的会话,一旦会话结束,临时节点将会被自动删除,当然也可以手动删除。虽然每个临时的Znode都会绑定到一个客户端,但它们对所有的客户端还是可见的。另外,需要注意的是临时节点不允许拥有子节点。
  永久节点,该生命周期不依赖于会话,并且只有在客户端显示执行删除操作的时候,它们才能被删除。
  由于Znode的序列化特性,在创建节点时,用户可以请求在该Znode的路径结尾添加一个不断增加的序列号,序列号对于此节点的父节点来说是唯一的,这样便会记录每个子节点创建的先后顺序。它的格式为“%010d”(10位数字,没有数值的数位用0补充,例如“0000000001”)。当计数值大于232-1时,计数器将会溢出。这样便会存在四种类型的目录节点,分别对应如下:
  PERSISTENT:永久节点
  EPHEMERAL:临时节点
  PERSISTENT_SEQUENTIAL:序列化永久节点
EPHEMERAL_SEQUENTIAL:序列化临时节点


猜你喜欢:

Zookeeper分布式系统的集群架构介绍

Spark的集群安装与配置简介【大数据技术文章】

简单举例,MapReduce是如何进行计算的