标签: zookeeper 节点管理
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
Java操作zookeeper java代码如下
- package com.hf.zookeeper.noteManager;
- import org.apache.zookeeper.*;
- import java.io.IOException;
- /**
- * Description:zookeeper增加节点,修改节点,删除节点操作
- * Created @version 1.0 2015/10/8 17:29 by xinghaifang
- */
- public class zkNodeMananger {
- public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
- // 创建一个与服务器的连接
- ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 60000, new Watcher() {
- // 监控所有被触发的事件
- public void process(WatchedEvent event) {
- System.out.println("EVENT:" + event.getType());
- }
- });
- // 查看根节点
- System.out.println("ls / => " + zk.getChildren("/", true));
- // 创建一个目录节点
- if (zk.exists("/node", true) == null) {
- zk.create("/node", "conan".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
- System.out.println("create /node conan");
- // 查看/node节点数据
- System.out.println("get /node => " + new String(zk.getData("/node", false, null)));
- // 查看根节点
- System.out.println("ls / => " + zk.getChildren("/", true));
- }
- // 创建一个子目录节点
- if (zk.exists("/node/sub1", true) == null) {
- zk.create("/node/sub1", "sub1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
- System.out.println("create /node/sub1 sub1");
- // 查看node节点
- System.out.println("ls /node => " + zk.getChildren("/node", true));
- }
- // 修改节点数据
- if (zk.exists("/node", true) != null) {
- zk.setData("/node", "changed".getBytes(), -1);
- // 查看/node节点数据
- System.out.println("get /node => " + new String(zk.getData("/node", false, null)));
- }
- // 删除节点
- if (zk.exists("/node/sub1", true) != null) {
- zk.delete("/node/sub1", -1);
- zk.delete("/node", -1);
- // 查看根节点
- System.out.println("ls / => " + zk.getChildren("/", true));
- }
- // 关闭连接
- zk.close();
- }
- }
pom.xml中需要引入依赖
- <dependencies>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.4.6</version>
- <exclusions>
- <exclusion>
- <groupId>javax.jms</groupId>
- <artifactId>jms</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jdmk</groupId>
- <artifactId>jmxtools</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jmx</groupId>
- <artifactId>jmxri</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
我们先注释掉删除节点部分代码,就可以在zkui界面中查看到我们添加的节点,如下图所示。