章节内容

上节我们完成了:

  • ZooKeeper 集群配置
  • ZooKeeper 集群启动
  • ZooKeeper 集群状况查看
  • Follower 和 Leader 节点

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制-LMLPHP

ZNode简介

在 ZooKeeper 中,数据信息被保存在一个个数据节点上,这些节点被称为ZNode
ZNode 是 ZooKeeper中的最小数据单位,在ZNode下还可以放ZNode
最终可以形成一个 ZNode Tree
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制-LMLPHP

在 ZooKeeper 中,每一个节点都是 ZNode,上图中有两个节点:

  • app1
  • app2

ZNode节点的路径标识和Unix文件系统路径非常相似,都是用一系列的 "/" 来表示的。
开发人员可以向这个节点写入数据,也可以在这个节点下创建子节点。

ZNode类型

ZooKeeper中的节点类型大致可以分为三大类, 不同的节点类型有不同的生命周期:

  • 持久性节点 Persistent
  • 临时性节点 Ephemeral
  • 顺序性节点 Sequential

持久性节点

ZooKeeper 中最常见的一种类型,节点被创建后会一直存在服务器上,直到被删除。

持久顺序节点

有顺序的持久节点,节点特性和持久节点是一样的,只是额外有了顺序
顺序特性实质上是在创建节点时,会在节点后面加上一个数字后缀,来表示其顺序。

临时节点

就是会被自动清理的节点,它的生命周期和客户端绑定在一起,客户端会话结束就会被删除掉。
与持久性节点不同的是,临时节点不能创建子节点

临时顺序节点

有顺序的临时节点,同顺序节点一样。

事务ID

事务是对物理和抽象的应用状态上的操作集合。往往在现在的观念中,狭义上的事务通常是指数据库事务,一般包含了一系列对数据库有序的读写操作。
这些事务具有所谓的 ACID:

  • 原子性 Atomic
  • 一致性 Consistency
  • 隔离性 Isolation
  • 持久性 Durability

在 ZooKeeper 中,事务是能够改变 ZooKeeper 服务器状态的操作。
对于每一个事务操作,ZooKeeper 都会为其分配一个全局唯一的事务ID,用ZXID来表示,通常是一个64位数字。每一个 ZXID 对应一个操作。

ZNode测试

客户端连接

我们需要连到:

zkCli.sh

成功连接到ZK:
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制-LMLPHP

SET测试

set / wzk.icu

GET测试

get /

Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制-LMLPHP

其他客户端

登录到其他客户端查看数据是否同步:
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制-LMLPHP

07-14 09:07