大数据之ZooKeeper(二)
文章目录
- 前言
- 一、数据类型
- 二、连接ZooKeeper集群
- 三、操作ZooKeeper节点
- 四、Watch机制
- 总结
前言
#博学谷IT学习技术支持#
上篇文章主要是ZooKeeper集群的概述,以及对该集群的特征和相关角色做了一个简介,本篇接着对ZooKeeper集群的数据类型、节点和Watch机制做介绍。
一、数据类型
ZooKeeper集群内部存在一个树型结构的目录树,其具有以下几个特点:
(1)目录树中包含节点,Znode表示目录树中的节点
(2)每个节点都有各自的名称,节点是唯一的,不能重复
(3)节点中可以存储数据,也可以存储子节点,创建子节点时必须存在父节点
(4)必须使用绝对路径访问节点,如:/app1
(5)目录树各个节点主要存储配置数据,所以对数据量不大
二、连接ZooKeeper集群
(1)连接ZooKeeper集群前需要先搭建ZooKeeper环境,网络上相关搭建教程很多,这里就不多做介绍,直接从客户端连接集群开始说起。
(2)连接集群先需要确保ZooKeeper集群已经启动,可以在对应集群上使用zkServer.sh的shell文件查看集群的当前状态。
(3)使用zkCli.sh即可连接ZooKeeper集群
- 连接本主机:
- 连接指定主机:
三、操作ZooKeeper节点
(1)节点类型介绍
- 节点分为永久节点,临时节点,永久顺序节点和临时顺序节点四种类型;
- 永久节点顾名思义是节点一直存在;临时节点只存在于当前会话,当前会话一结束,节点跟着结束;
- 创建顺序节点时,如果当前节点已存在相同名称的节点,则会自动在当前新增的节点名称后加上编号,从而使节点唯一,结合永久节点和临时节点两个概念,则可以理解为创建永远存在的顺序节点和临时性的顺序节点。
(2)创建节点,创建的节点必须唯一,以及需要指定节点存储的数据,否则节点将创建失败
-
创建永久节点
-
创建临时节点
-
创建永久顺序节点
-
创建临时顺序节点
(3)查找节点,使用get + 节点路径即可
(4)修改节点值,修改的规则为:set + 节点路径 + 新的节点值,以节点app1为例
(5)删除节点,有两种方式,一种是delete,该方式只能删除空节点,若该节点有子节点则会删除失败,另一种方式是rmr,递归删除节点,无论节点是否具有子节点,都可以使用rmr删除节点
四、Watch机制
ZooKeeper的Watch机制类似于事件监听,目录树的节点若有变化,则自动进行相对应的操作,Watch机制在命令行终端是一次性的,如果需要一直对节点进行监听的话,需要借助Java才能实现。
总结
ZooKeeper的Watch机制可以实时监控节点的变化,根据节点的不同变化,制定相对应的处理方式。