当前位置: 首页 > news >正文

大数据之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机制可以实时监控节点的变化,根据节点的不同变化,制定相对应的处理方式。

相关文章:

  • 2021CCPC新疆省赛题解BDEFGHIJK
  • Hyperledge Fabric-身份与角色认证
  • SpringAOP底层原理
  • 【高等数学基础进阶】多元函数的极值与最值
  • QT使用MSVC编译器时中文报错问题
  • Java Double toString()方法具有什么功能呢?
  • 猿创征文|Spring Boot日志
  • Blue Prism 异常处理
  • PCL 环境下安装配置CGAL 5.5
  • Code For Better 谷歌开发者之声——盘点大家用过的Google 产品
  • Android基本界面控件、部分属性方法解析
  • Qt5开发从入门到精通——第六篇二节( 图像与图片——基础图形的绘制 )
  • Hive学习笔记2
  • 【zabbix监控四】zabbix之监控tomcat服务报警案例
  • JavaScript endsWith() 方法
  • @angular/forms 源码解析之双向绑定
  • 【node学习】协程
  • Druid 在有赞的实践
  • ES6--对象的扩展
  • ES6系列(二)变量的解构赋值
  • gulp 教程
  • Java多线程(4):使用线程池执行定时任务
  • js中的正则表达式入门
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • MySQL QA
  • mysql常用命令汇总
  • webpack4 一点通
  • win10下安装mysql5.7
  • Xmanager 远程桌面 CentOS 7
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 将回调地狱按在地上摩擦的Promise
  • 深入 Nginx 之配置篇
  • 手机app有了短信验证码还有没必要有图片验证码?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (十八)SpringBoot之发送QQ邮件
  • (十六)串口UART
  • (转)ORM
  • (转)VC++中ondraw在什么时候调用的
  • .NET中winform传递参数至Url并获得返回值或文件
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [20161101]rman备份与数据文件变化7.txt
  • [C#7] 1.Tuples(元组)
  • [C]整形提升(转载)
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [HackMyVM]靶场Boxing
  • [HJ73 计算日期到天数转换]
  • [Java][方法引用]构造方法的引用事例分析
  • [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表