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
*/
@Before
public void unit() throws IOException {
zkCli = new ZooKeeper(connectString, senssionTimeout, new Watcher() {
public void process(WatchedEvent watchedEvent) { }
});
} /**
* 创建节点
* @ throws KeeperException
* @ throws InterruptedException
*/
@Test
public void createZnode() throws KeeperException, InterruptedException {
String path = zkCli.create("/Wyh", "cool".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println(path); } //获取节点
@Test
public void getZone() throws KeeperException, InterruptedException {
List<String> children = zkCli.getChildren("/", true);
for (String c:children){
System.out.println(c);
}
} //删除节点
@Test
public void deleteZnode() throws KeeperException, InterruptedException {
zkCli.delete("/baby",-1);
getZone();
} //修改节点
@Test
public 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));
} }
Zookeeper常用命令行及API的更多相关文章
- ZooKeeper常用命令行操作
ZooKeeper常用命令行操作 通过./zkCli.sh 打开zk的客户端进入命令行后台 ls/ls2 列出当前节点下的子节点 ls2还会列出当前节点的状态 [zk: localhost:2181( ...
- ZooKeeper常用命令行工具及使用(转)
一.服务端 bin目录下常用的脚本解释 zkCleanup:清理Zookeeper历史数据,包括食物日志文件和快照数据文件 zkCli:Zookeeper的一个简易客户端 zkEnv:设置Zookee ...
- 第4章 ZK基本特性与基于Linux的ZK客户端命令行学习 4-1 zookeeper常用命令行操作
ls path [watch] watch是一个监督者.quota是zookeeper的子目录.目录就是节点的意思,对于zookeeper来说它是以一个节点来说的,所以说/就是根节点,zookeepe ...
- Zookeeper的命令行操作(三)
Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...
- Zookeeper常用命令 (转)
原文链接:ZooKeeper系列之二:Zookeeper常用命令 ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服 ...
- Linux 常用命令行
Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作
- vi 常用命令行
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...
- GCC常用命令行一览表
GCC常用命令行一览表 这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_ ...
- Linux - 常用命令行(一)
今天和大家分享一些最基本常用命令行:也是作为新手最应该了解掌握的 ls 命令:用来显示指定工作目录下内容 dir命令:与ls命令一致 cd 命令:变化工作目录 pwd命令:显示用户当前的工作路径,显 ...
随机推荐
- C#遍历指定文件夹中的所有文件(转)
C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);//遍历文件夹foreach(DirectoryIn ...
- winform中textbox提示框
在winform中向textbox输入内容时下面有提示信息,效果如图所示: private void Form1_Load(object sender, EventArgs e) { Auto ...
- LeetCode(105):从前序与中序遍历序列构造二叉树
Medium! 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inor ...
- Python基础之类方法和静态方法
小叙一会儿: 通常情况下,在类中定义的所有函数(注意了,这里说的就是所有,跟self啥的没关系,self也只是一个再普通不过 的参数而已)都是对象的绑定方法,对象在调用绑定方法时会自动将自己作为参数传 ...
- python网络爬虫笔记(八)
一.pthon 序列化json格式 1.将python内置对象转换成json 模块,dumps()方法返回的是一个str,内容是标准的JSON,dump()方法可以直接吧JSON写入一个file-li ...
- Linux编程学习笔记(二)
续上个章节,这个章节主要是Linux的远程登录系统操作笔记 一. Linux一般作为服务器使用,但是服务器都是在机房的,所以不可能经常跑到机房去操作系统,所以使用远程登录系统,在Linux的系统一般使 ...
- 官方版sublime Text3汉化和激活注册码
转载:https://www.cnblogs.com/chaonuanxi/p/9371837.html sublimeText3 很不错,前面几天下了vscore学习Node.js,感觉有点懵,今天 ...
- getComputedStyle()用法详解
那如果元素即没有在style属性中设置宽高,也没有在样式表中设置宽高,还能用getComputedStyle或currentStyle获取吗?答案是getComputedStyle可以,current ...
- Java接口自动化测试之TestNG学习(二)
在maven项目的pom.xml文件中导入TestNG <?xml version="1.0" encoding="UTF-8"?> <pro ...
- Dom,查找标签和操作标签
Dom,查找标签和操作标签 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 ...