一、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配置:

  1. <dependency>
  2. <groupId>org.apache.zookeeper</groupId>
  3. <artifactId>zookeeper</artifactId>
  4. <version>3.4.10</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>junit</groupId>
  8. <artifactId>junit</artifactId>
  9. <version>4.12</version>
  10. <scope>compile</scope>
  11. </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.具体代码

  1. /**
  2. * @author: PrincessHug
  3. * @date: 2019/2/25, 13:28
  4. * @Blog: https://www.cnblogs.com/HelloBigTable/
  5. */
  6. public class ZKClient01 {
  7. private String connectString = "192.168.126.128:2181,192.168.126.129:2181,192.168.126.130:2181";
  8. private int senssionTimeout = 3000;
  9. private ZooKeeper zkCli = null;
  10.  
  11. /**
  12. * 初始化客户端
  13. * @ throws IOException
  14. */
  15. @Before
  16. public void unit() throws IOException {
  17. zkCli = new ZooKeeper(connectString, senssionTimeout, new Watcher() {
  18. public void process(WatchedEvent watchedEvent) {
  19.  
  20. }
  21. });
  22. }
  23.  
  24. /**
  25. * 创建节点
  26. * @ throws KeeperException
  27. * @ throws InterruptedException
  28. */
  29. @Test
  30. public void createZnode() throws KeeperException, InterruptedException {
  31. String path = zkCli.create("/Wyh", "cool".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
  32.  
  33. System.out.println(path);
  34.  
  35. }
  36.  
  37. //获取节点
  38. @Test
  39. public void getZone() throws KeeperException, InterruptedException {
  40. List<String> children = zkCli.getChildren("/", true);
  41. for (String c:children){
  42. System.out.println(c);
  43. }
  44. }
  45.  
  46. //删除节点
  47. @Test
  48. public void deleteZnode() throws KeeperException, InterruptedException {
  49. zkCli.delete("/baby",-1);
  50. getZone();
  51. }
  52.  
  53. //修改节点
  54. @Test
  55. public void setZnode() throws KeeperException, InterruptedException {
  56. zkCli.setData("/Wyh","reallycool".getBytes(),-1);
  57. byte[] data = zkCli.getData("/Wyh", true, new Stat());
  58. System.out.println(new String(data));
  59. }
  60.  
  61. }

  

Zookeeper常用命令行及API的更多相关文章

  1. ZooKeeper常用命令行操作

    ZooKeeper常用命令行操作 通过./zkCli.sh 打开zk的客户端进入命令行后台 ls/ls2 列出当前节点下的子节点 ls2还会列出当前节点的状态 [zk: localhost:2181( ...

  2. ZooKeeper常用命令行工具及使用(转)

    一.服务端 bin目录下常用的脚本解释 zkCleanup:清理Zookeeper历史数据,包括食物日志文件和快照数据文件 zkCli:Zookeeper的一个简易客户端 zkEnv:设置Zookee ...

  3. 第4章 ZK基本特性与基于Linux的ZK客户端命令行学习 4-1 zookeeper常用命令行操作

    ls path [watch] watch是一个监督者.quota是zookeeper的子目录.目录就是节点的意思,对于zookeeper来说它是以一个节点来说的,所以说/就是根节点,zookeepe ...

  4. Zookeeper的命令行操作(三)

    Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...

  5. Zookeeper常用命令 (转)

    原文链接:ZooKeeper系列之二:Zookeeper常用命令 ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服 ...

  6. Linux 常用命令行

    Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作

  7. vi 常用命令行

    vi 常用命令行 1.vi 模式  a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.  b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...

  8. GCC常用命令行一览表

    GCC常用命令行一览表 这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_ ...

  9. Linux - 常用命令行(一)

    今天和大家分享一些最基本常用命令行:也是作为新手最应该了解掌握的 ls 命令:用来显示指定工作目录下内容 dir命令:与ls命令一致 cd  命令:变化工作目录 pwd命令:显示用户当前的工作路径,显 ...

随机推荐

  1. idea Unable to open debugger port (127.0.0.1:58006) Address already in use: JVM_Bind 的解决办法

    报错说端口58006 被占用了,于是去修改端口 重新dubug 发现换个端口号还是不行,同样的错误.有时候你把idea关闭重新打开依旧不起作用.最暴力的办法就是重启电脑... 问题解决: 查看使用中的 ...

  2. 【Shared Server Mode】测试调整shared_servers参数对数据库的影响

    本文来源于:secooler  的 <[Shared Server Mode]测试调整shared_servers参数对数据库的影响> 关于Shared Server模式的配置方法请参见文 ...

  3. Confluence 6 管理应用服务器内存设置

    应用服务器中的最小和最大 JVM Heap 空间配置将会影响系统的性能.Confluence 管理员可能希望对默认的配置进行修改,基于你系统的负载不同配置情况也会有所不同,请参考页面 Server H ...

  4. Confluence 6 配置日志

    我们推荐你根据你的需求来配置你自己的 Confluence 日志.你可以有下面 2 种方法来修改你的日志: 通过 Confluence 管理员控制台进行配置 – 你的修改仅在本次修改有效,下次重启后将 ...

  5. 【java】转:Windows系统下面多个jdk版本切换

    转自:https://blog.csdn.net/iamcaochong/article/details/56008545 1.系统-高级系统设置-环境变量 里面的Path值最前面的C:\Progra ...

  6. java多线程快速入门(十八)

    Lock锁是JDK1.5之后推出的并发包里面的关键字(注意捕获异常,释放锁) Lock与synchronized的区别 Lock锁可以人为的释放锁(相当于汽车中的手动挡) synchronized当线 ...

  7. Django框架之Form组件

    一.初探Form组件 在介绍Form组件之前,让大家先看看它强大的功能吧!Go... 下面我们来看看代码吧! 1.创建Form类 from django.forms import Form from ...

  8. 安装lrzsz 实现windows与linux之间文件互传

    环境:CentOS7.4 执行命令安装: [root@linuxhg01 www]# yum install lrzsz rz // Windows 上传到 linux [root@linuxhg01 ...

  9. gitlab报错502及处理

    报错截图: 解决: 1.端口问题 如上面写的815端口,那配置文件的8080端口都改成815端口 之后重新载入配置文件,并开启 gitlab-ctl reconfigure gitlab-ctl st ...

  10. vs问题解决:an operation is not legal in the current state

    debug时弹出提示框:内容有:an operation is not legal in the current state 解决方案: Go to Tools > Options > D ...