Zookeeper常用命令行及API

一、Zookeeper常用命令行

  1.启动zookeeper客户端(在启动zookeeper集群后启动进行调试)

    zkCli.sh  

  2.查看帮助、操作历史

    help、history

  3.查看当前Znode的目录

    ls /    ls2 /  (查看当前Znode的详细信息)

  4.创建Znode

   (1)默认:create 路径 内容

    create /Wyh 18yearsold

   (2)创建短暂的Znode  ephemeral

    create -e /dilireba beautiful

    (3)创建带序号的Znode  sequential

    create -s /yangmi justsoso

   (4)创建短暂带序号的Znode

    create -e -s /wyh cool

  5.查看Znode

    get /Wyh

  6.修改Znode

    set /Wyh

  7.删除Znode

    delete /Wyh

    rmr /Wyh  =>递归删除,即删除该节点及该节点下所有子节点

  8.监听节点

   (1)监听节点的子节点,即监听路径

    ls / watch

   (2)监听节点的内容

    get / watch

  9.查看节点状态

    stat /Wyh

 

二、Zookeeper常用API

  1.准备工作,zookeeper的依赖:

   可以解压其压缩包,将lib目录下的依赖包导入到编译器; 

   也可以使用maven,maven配置:

        <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency>

  2.常用方法讲解:

    (1)首先创建客户端类ZKClient

    在类中定义全局变量连接字段connectString、连接超时sessionTimeout、客户端类比变量zkCli;
    (2)
初始化客户端

    定义初始化方法init,new一个zookeeper赋值给zkCli,并设置它的变量connectString,sessionTimeout,new Watcher(),置回调监听watcher;

   (输出事件event的路径、状态、类型,并用try/catch抛出异常)
    (3)
创建节点方法

    定义创建节点方法createZnode,调用客户端create方法,设置路径、编辑内容并转化为byte类型、应答类型、节点类型,然后将路径赋值给字符串变量path

,输出path;
    (4)
获取子节点方法

      定义方法getZnode,调用客户端getChildren方法,设置目标路径、是否监听,把获取的子节点的名称赋值给字符串集合children,使用 for循环遍历children集合;

   (5)删除节点方法

      定义方法deleteZnode,调用delete方法,设置目标节点、版本值(-1为删除),然后可以遍历目标删除节点的父节点;
     (6)
修改节点方法、并查看

      定义方法setZnode,调用setData方法,设置目标节点并转化为byte类型、版本值(-1),调用getData方法,设置查看节点、是否监听、状态(new Stat()),将得到的值赋值给字节集合data,将data强转为string类型数据进行查看。

  3.具体代码

/*** @author: PrincessHug* @date: 2019/2/25, 13:28* @Blog: https://www.cnblogs.com/HelloBigTable/*/
public class ZKClient01 {private String connectString = "192.168.126.128:2181,192.168.126.129:2181,192.168.126.130:2181";private int senssionTimeout = 3000;private ZooKeeper zkCli = null;/*** 初始化客户端* @ throws IOException*/@Beforepublic void unit() throws IOException {zkCli = new ZooKeeper(connectString, senssionTimeout, new Watcher() {public void process(WatchedEvent watchedEvent) {}});}/*** 创建节点* @ throws KeeperException* @ throws InterruptedException*/@Testpublic void createZnode() throws KeeperException, InterruptedException {String path = zkCli.create("/Wyh", "cool".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);System.out.println(path);}//获取节点
    @Testpublic void getZone() throws KeeperException, InterruptedException {List<String> children = zkCli.getChildren("/", true);for (String c:children){System.out.println(c);}}//删除节点
    @Testpublic void deleteZnode() throws KeeperException, InterruptedException {zkCli.delete("/baby",-1);getZone();}//修改节点
    @Testpublic void setZnode() throws KeeperException, InterruptedException {zkCli.setData("/Wyh","reallycool".getBytes(),-1);byte[] data = zkCli.getData("/Wyh", true, new Stat());System.out.println(new String(data));}}

 

  

 

转载于:https://www.cnblogs.com/HelloBigTable/p/10434153.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

被骗两次?黄仁勋骗过世界的14秒,英伟达押宝未来的元宇宙……

来源&#xff1a;物联网智库在近期召开的计算机图形顶级会议ACM SIGGRAPH 2021 上&#xff0c;英伟达介绍了自研的3D仿真模拟和协作平台Omniverse&#xff0c;并放出了“合成版老黄”的打造过程。有媒体据此报道称——万万没想到&#xff0c;在3个月前的GTC大会中&#xff0c;厨…

QT清单打印程序

1.主要代码 //customer.h文件 #ifndef CUSTOMER_H #define CUSTOMER_H#include <QObject> #include <string>class Customer : public QObject {Q_OBJECT public:explicit Customer(QObject *parent nullptr);Customer(const Customer& customer);void setCo…

Linux下生成指定大小文件(命令+Java程序)

1、dd命令 of&#xff1a;fileName为文件名称&#xff0c;例如test.txt &#xff1b; bs&#xff1a;设置一次复制的大小&#xff0c;例如1M&#xff1b; count&#xff1a;设置复制次数&#xff0c;例如100&#xff1b; dd if/dev/zero of<fileName> bs<一次复制…

C语言之随机数函数( rand() )的使用方法

文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number&#xff0c;转载请申明。 在程序设计中&#xff0c;难免会使用到随机值函数&#xff0c;其原理与语法大多类似&#xff0c;接下来以C语言为例介绍其随机值函数 rand() 用法。 原理 引用百度百科&#xf…

图灵奖得主杨立昆:人工智能比你更聪明吗?

来源&#xff1a;混沌巡洋舰人工智能常常被认为是一项将要颠覆世界的技术&#xff0c;从这一概念诞生至今的65年中&#xff0c;无数电影与小说塑造了各种经典的人工智能角色&#xff0c;AI &#xff08;Artificial Intelligence&#xff09;也很快成为人类未来世界蓝图中的重要…

(转)Windows系统、Linux系统 和 Mac OS操作系统 历史由来 与 区别?

目录 1 UNIX 由来 2 Linux 由来 3 Windows与Linux的主要区别 4 关于Linux的一些疑惑 参考资料 目前常见的三大操作系统&#xff1a;Windows系统、Linux系统 和 Mac OS操作系统。 首先&#xff0c;不管是Windows操作系统、Linux系统还是苹果的Mac OS操作系统&#xff0c;甚…

国务院公布《关键信息基础设施安全保护条例》

来源&#xff1a;中国政府网编辑&#xff1a;蒲蒲据中国政府网8月17日消息&#xff0c;《关键信息基础设施安全保护条例》已经2021年4月27日国务院第133次常务会议通过&#xff0c;现予公布&#xff0c;自2021年9月1日起施行。条例指出&#xff0c;国家对关键信息基础设施实行重…

hadoop碰到的 一个问题

在里面添加/usr/local/hadoop/etc/hadoop/log4j.properties log4j.logger.org.apache.hadoop.util.NativeCodeLoaderDEBUG 可以查看debug信息&#xff1a; [rootelk03 hadoop]# hdfs dfs -ls /19/02/26 01:19:37 DEBUG util.NativeCodeLoader: Trying to load the custom-built…

SpringBoot笔记整理(一)

SpringBoot笔记整理&#xff08;一&#xff09; SpringBoot笔记整理&#xff08;二&#xff09; SpringBoot笔记整理&#xff08;三&#xff09; SpringBoot笔记整理&#xff08;四&#xff09; 1、使用Spring Initializer快速创建Springboot项目 默认生成的Spring Boot项目&…

文章推荐 | 城市规划中城市信息学的研究进展

来源&#xff1a;北京城市实验室BCL随着计算机技术的飞速发展&#xff0c;城市信息学作为城市规划领域的一门新兴学科&#xff0c;逐渐引起学术界的关注。城市信息学的兴起给城市规划带来了新的压力&#xff0c;但它也提供了新的城市分析视角。在此背景下&#xff0c;专家小组概…

Matlab基础

一.入门基础 1.基本知识 1.1 输入命令 以分号结尾不会打印变量的值 x 1 y x;1.2 变量命名规则&#xff1a;以字母开头&#xff0c;并且仅包含字母、数字和下划线。 1.3 使用save命令将工作区中的变量保存到MAT文件的MATLAB特定格式文件中,文件名为datafile.mat。可以指定保…

3年规模翻7倍统治 5G、IoT时代,化合物半导体材料深度报告

来源 华西证券编辑&#xff1a;智东西内参作者&#xff1a;吴吉森 等随着 5G、IoT 物联网时代的来临&#xff0c;以砷化镓&#xff08;GaAs&#xff09;、氮化镓&#xff08;GaN&#xff09;、碳化硅&#xff08;SiC&#xff09;为代表的化合物半导体市场有望快速崛起。其中&am…

SpringBoot笔记整理(二)

SpringBoot笔记整理&#xff08;一&#xff09; SpringBoot笔记整理&#xff08;二&#xff09; SpringBoot笔记整理&#xff08;三&#xff09; SpringBoot笔记整理&#xff08;四&#xff09; Spring Boot与日志&#xff08;日志框架、日志配置&#xff09; 1、市面上的日志…

MATLAB图像处理基础

1.导入数据 1.1 使用readtable("")导入数据&#xff0c;并存储在表格中&#xff0c;使用axis equal可以校正坐标轴纵横比。 letter readtable("M.txt"); plot(letter.X,letter.Y) axis equal1.2 range(x)函数返回x的值的范围&#xff0c;即max(x) - min(…

BBWebImage 设计思路

BBWebImage 设计思路 BBWebImage 是高性能 Swift 图片组件&#xff0c;用于图片下载、缓存、编解码、编辑与展示。 GitHub 地址&#xff1a; https://github.com/Silence-GitHub/BBWebImage 效果图 下载、展示并缓存原图 下载、渐进式解码、编辑图片&#xff0c;缓存编辑后的图…

清华本科、港科大准博士被指论文抄袭,网友:这是有技巧的“洗稿”

来源&#xff1a;整理自新智元、Reddit、知乎等不是吧&#xff1f;清华自动化本科&#xff0c;香港科技大学硕士生发表的顶会论文竟然是抄的&#xff1f;而且抄袭对象还是另一篇顶会论文&#xff1f;近日&#xff0c;眼尖的网友发现两篇分别发表在 ICML 2021 和 ICCV 2021 两大…

MATLAB深度学习入门

1. 加载图像 1.1 使用imread函数加载图像&#xff0c;可以加载GIF、JPEG、PNG等大多数标准文件格式图像。 Import an image img imread("file.jpg")1.2 采用**imshow()**来显示图像。 imshow(img)1.3 采用alexnet函数可以创建预定义的深度网络AlexNet的副本。 de…

SpringBoot笔记整理(三)

SpringBoot笔记整理&#xff08;一&#xff09; SpringBoot笔记整理&#xff08;二&#xff09; SpringBoot笔记整理&#xff08;三&#xff09; SpringBoot笔记整理&#xff08;四&#xff09; Web开发 1、使用SpringBoot&#xff1a; 1&#xff09;创建SpringBoot应用&…

Scrapy shell调试返回403错误

一、问题描述 有时候用scrapy shell来调试很方便,但是有些网站有防爬虫机制,所以使用scrapy shell会返回403,比如下面 C:\Users\fendo>scrapy shell https://book.douban.com/subject/26805083/2017-04-17 15:18:53 [scrapy.utils.log] INFO: Scrapy 1.3.3 started (bot: sc…

图神经网络,如何变深?

来源&#xff1a;智源社区版式制作&#xff1a;Camel撰文&#xff1a;侯振宇编辑&#xff1a;贾 伟现实世界中很多很多任务可以描述为图(Graph)问题&#xff0c;比如社交网络&#xff0c;蛋白质结构&#xff0c;交通路网数据&#xff0c;图是一个很值得研究的领域。近年来&am…