六、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)

大家都在看

  • Anaconda的conda是什么?conda与pip的区别是什么?

    一、Anaconda的conda是什么? Conda是一个辅助进行包管理和环境管理的工具。目前是Ananconda默认的Python包和环境管理工具,所以安装了Ananconda完…

    Python 2023年9月8日
    050
  • c++实现地图控制扫雷(界面优化版

    首先这种游戏需要地图刷新 大家最先想到的一定是system(“cls”);了 但是这有一个很大的缺陷 只要走的太快就会闪屏 所以这时需要的就是重设控制台输出…

    Python 2023年9月24日
    033
  • RobotFramework入门(一)简要介绍及使用

    前言 本章主要讲述Robotframework的简要介绍及使用 一、简要介绍 Robotframework:是一个基于 Python语言开发的,可扩展的,是 关键字驱动模式的自动化…

    Python 2023年8月1日
    060
  • Apple芯片Mac无法安装FastGithub arm64版本

    最近新入手了M1 MacBook Air,想安装FastGithub来解决GitHub无法访问的问题,于是我下载了arm64版本,发现用不了,用sudo也不行,而且无法生成cace…

    Python 2023年6月12日
    081
  • Python编程向导:Kivy基础

    目录 一、安装Kivy 的运行环境 二、创建一个 Kivy应用程序 三、Kivy APP 的生命周期 四、Kivy运行应用程序 五、Kivy定制应用程序 六、Kivy终端应用程序 …

    Python 2023年9月21日
    044
  • 带你读AI论文丨ACGAN-动漫头像生成

    摘要:ACGAN-动漫头像生成是一个十分优秀的开源项目。 1.论文及算法介绍 • 论文题目:《Conditional Image Synthesis With Auxiliary …

    Python 2023年10月28日
    039
  • 【面试总结】APP测试面试问题(版本2)

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/upstudy/p/16712701.htmlAutho…

    Python 2023年6月15日
    072
  • 20212217刘恒谦 实验二《Python程序设计》实验报告

    学号 20212217 姓名 刘恒谦 《Python程序设计》实验二报告 课程:《Python程序设计》班级: 2122姓名: 刘恒谦学号:20212217实验教师:王志强实验日期…

    Python 2023年6月10日
    083
  • 一文带你认识AscendCL

    摘要:AscendCL(Ascend Computing Language,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。 01 认识AscendCL As…

    Python 2023年10月25日
    026
  • 【MySQL】DDL因Waiting for table metadata lock卡住

    在数据库空闲时间,对表做碎片整理: 发现会话被阻塞,显示状态是: 手动断开alter操作后,通过show processlist查看:​ 可以看到会话都处于sleep状态。但是一旦…

    Python 2023年10月23日
    021
  • 自动化测试框架-pytest框架入门篇

    前段时间,九九姐更新了自动化测试中unittest框架,然后有很多小伙伴私聊九九姐,说想学习一下pytest框架的内容。既然大家已经说话了,九九姐怎么能不安排呢,所以今天就给大家说…

    Python 2023年9月10日
    042
  • python简易贪吃蛇

    python简易贪吃蛇 前言 开始 * – 献上代码 代码剖析 项目github + * – 作者 前言 开始 献上代码 from tkinter.mess…

    Python 2023年9月25日
    029
  • np.stack()使用

    1.官网https://numpy.org/doc/stable/reference/generated/numpy.stack.html np.stack(arrays , ax…

    Python 2023年8月28日
    046
  • Python配置web.py及简单使用

    一、安装web.py 本文这里直接是在Pycharm上安装的web.py框架, 在终端上,执行如下命令,安装web.py: pip install web.py 安装非常快,web…

    Python 2023年8月13日
    036
  • Pandas处理表格基础

    现在使用Python处理表格类数据(excel/csv)已经成为工作不可或缺的技能,尤其大数据量的分析筛选转换,Python更可以提供无与伦比的优势,使用Python处理数据,那P…

    Python 2023年8月6日
    054
  • 分布式计算 MapReduce 究竟是怎么一回事?

    前言 如果要对文件中的内容进行统计,大家觉得怎么做呢?一般的思路都是将不同地方的文件数据读取到内存中,最后集中进行统计。如果数据量少还好,但是面对海量数据、大数据的场景这样真的合适…

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