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));
    }

}

 

  

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值