章节内容
上节我们完成了:
- ZooKeeper 集群配置
- ZooKeeper 集群启动
- ZooKeeper 集群状况查看
- Follower 和 Leader 节点
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
- 2C4G 编号 h121
- 2C4G 编号 h122
- 2C2G 编号 h123
ZNode简介
在 ZooKeeper 中,数据信息被保存在一个个数据节点
上,这些节点被称为ZNode
。
ZNode 是 ZooKeeper中的最小数据单位,在ZNode下还可以放ZNode
。
最终可以形成一个 ZNode Tree
在 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测试
客户端连接
我们需要连到:
shell
zkCli.sh
成功连接到ZK:
SET测试
shell
set / wzk.icu
GET测试
shell
get /
其他客户端
登录到其他客户端查看数据是否同步: