六、Java API操作zookeeper节点

前文

pom.xml文件增加依赖


            org.apache.zookeeper
            zookeeper
            3.7.0

新建java文件:ZookeeperTest

/**
 * @author LEHOSO
 * @date 2021/11/21
 * @apinote
 */

public class ZookeeperTest {

    public static void main(String[] args) throws Exception {
        // 初始化ZooKeeper实例(zk地址、会话超时时间,与系统默认一致, watcher)
        //步骤一:创建Zookeeper客户端
        //参数1:zk地址;参数2:会话超时时间(与系统默认一致);参数3:监视器
        ZooKeeper zk = new ZooKeeper(
                "192.168.142.10:2181," +
                        "192.168.142.20:2181," +
                        "192.168.142.30:2181", 300000, new Watcher() {
            @Override
            //监控所有被触发的事件(也就是在这里进行事件的处理)
            public void process(WatchedEvent watchedEvent) {
                System.out.println("事件类型为:" + watchedEvent.getType());
                System.out.println("事件发生的路径:" + watchedEvent.getPath());
                System.out.println("通知状态为:" + watchedEvent.getState());
            }
        });

        //步骤二:创建目录节点
        //参数1:要创建的节点路径;参数2:节点数据;参数3:节点权限;参数4:节点类型
        zk.create("/testRootPath", "testRootData".getBytes(),
                Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

        //步骤三:创建子目录节点
        zk.create("/testRootPath/testChildPathOne", "testChildPathOne".getBytes(),
                Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

        //步骤四:获取目录节点数据
        //参数1:存储节点数据的路径;
        //参数2:是否需要监控此节点(true/false)
        //参数3:stat节点的统计信息(一般设置null)
        System.out.println("testRootData节点数据为:" +
                new String(zk.getData("/testRootPath", false, null)));
        //步骤五:获取子目录节点数据
        // 取出子目录节点列表
        System.out.println(zk.getChildren("/testRootPath", true));

        //步骤六:修改子目录节点数据,使得监听触发
        //参数1:存储子目录节点数据的路径;
        //参数2:要修改的数据;
        //参数3:预期要匹配的版本(设置为-1,则可匹配任何节点的版本)
        zk.setData("/testRootPath/testChildPathOne", "modifyChildDataOne".getBytes(), -1);
        //步骤七:判断目录节点是否存在
        System.out.println("目录节点状态[" + zk.exists("/testRootPath", true) + "]");

        //步骤八:删除子目录节点
        zk.delete("/testRootPath/testChildPathOne", -1);
        //步骤九:删除目录节点
        zk.delete("/testRootPath", -1);
        zk.close();
    }
}

GitHub文件下载

HadoopDemo

Original: https://www.cnblogs.com/lehoso/p/15586763.html
Author: 李好秀
Title: 六、Java API操作zookeeper节点

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/563753/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【第五届2022美团CTF-WriteUp By EDISEC】

    第五届2022美团CTF-WriteUp By EDISEC Web * easypickle babyjava Crypto * strange_rsa1 Re * re_1 :…

    Python 2023年8月9日
    054
  • Python Pandas窗口函数

    为了能更好地处理数值型数据,Pandas 提供了几种窗口函数,比如移动函数(rolling)、扩展函数(expanding)和指数加权函数(ewm)。 窗口函数应用场景非常多。举一…

    Python 2023年8月6日
    061
  • .Net Core 中使用工厂模式

    工厂模式是最常用的设计模式之一,属于创建型模式。有点: 解耦,可以把对象的创建和过程分开 减少代码量,易于维护 当一个抽象类有多个实现的时候,需要多次实例化的时候,就要考虑使用工厂…

    Python 2023年6月12日
    096
  • 初学Java中的方法,看这篇就够了

    本篇介绍了Java中方法的概念以及方法的使用(方法的定义和调用,实参和形参的关系).方法重载的介绍和使用,编译器如何实现方法重载- -方法签名,介绍和使用方法调用自身解决问题的技巧…

    Python 2023年11月6日
    035
  • 如何在linux上直接运行python程序(感谢亮赶同学)

    如何在linux上直接运行python程序(感谢亮赶同学) ==最后感谢亮赶同学的帮助== 之前亮赶同学在我的服务器上一顿操作,给我把数据路径问题解决了,随后拂袖而去,这让身为小白…

    Python 2023年10月8日
    038
  • 上手Pandas,带你玩转数据(5)– 数据转换与数据定位

    ### 回答1: Python是一种功能强大的编程语言,可以用于各种 数据_分析任务。而在Python的 _数据_分析工具库中, _pandas_是最受欢迎和广泛使用的工具之一。 …

    Python 2023年8月20日
    049
  • 机器学习算法介绍-拔草ChatGPT

    最近ChatGPT(https://chat.openai.com)特别火,笔者也借此机会尝鲜了一波。ChatGPT是一个一个大型语言模型,它的功能是回答用户提出的问题。它可以回答…

    Python 2023年11月4日
    039
  • Maven安装与配置教程

    文章目录 * – 1 什么是Maven – + * 1.1 Maven概述 * 1.2 Maven的常用命令 – 2 怎么安装Maven &#8…

    Python 2023年9月26日
    035
  • matplotlib图表添加文字注释

    matplotlib 图表添加文字注释 plt.annotate(xy,xytext) 需要两个坐标: xy:注释的坐标 xytext:插入的文本 范例 import matplo…

    Python 2023年9月7日
    035
  • 更改DataFrame列顺序

    使用pandas进行数据分析的时候,有时会由于各种需求添加了一些列。可是列的顺序并不能符合自己的期望。这个时候就需要对于列的顺序进行调整。 显示的数据内容为: 其实想调整为:(将最…

    Python 2023年5月24日
    088
  • redis操作

    关系型数据库: MySQL MySQL的缺陷: 1. 读取的时候相对较快, 但是写入数据是比较慢的, 读取速度是1w/s. 写入速度: 1000/s。 2. 读写时容易混淆,会读取…

    Python 2023年8月6日
    039
  • Python入门系列(四)别再傻傻分不清:列表、元组、字典、集合的区别

    总结分析列表、元组、字典、集合的相同与区别之处,只有彻底分清之后,就会在应用的时候,得心应手。 四句话总结 列表是一个有序且可更改的集合,允许重复成员。 元组是一个有序且不可更改的…

    Python 2023年10月23日
    056
  • 分享一个seata demo,讲两个个问题

    Seata,阿里开源的分布式事务框架,多的我就不介绍了,了解详细介绍,请看官网。seata spring boot入门,可以看我上一篇博客《Spring boot微服务如何集成fe…

    Python 2023年6月12日
    064
  • 数据预处理——数据挖掘1

    将数据中”?”标志的缺失数据补齐。 采用”均值替换”的方法补齐缺失数据,使用每列数据的均值替换该列数据的缺失值。 import pa…

    Python 2023年8月7日
    038
  • 计算机毕业设计Python+Django的在线论坛信息技术系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 论坛管理系统的建立是可以有效的用户间日常交流和学习的投资(指时间,精力),其设计理念很简单,变传统的打电话或面对面的交流方式为计算机自动化进行网上论坛信息交流管理,既省时…

    Python 2023年8月4日
    058
  • matplotlib 绘制直方图和拟合正态曲线

    首先,还是看看matplotlib中hist函数的语法 hist( x, bins=None, range=None, normed=False, # 超&a…

    Python 2023年8月31日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球