zookeeper api demo

来源:互联网 发布:堆优化的dijkstra 编辑:程序博客网 时间:2024/05/18 14:44
package zookeeper;


import java.io.IOException;


import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.test.ClientBase;


public class zktest {


/**
* @param args
*/
public static final String connectString = "inc-dw-hadoop-151-7:2181,inc-dw-hadoop-151-8:2181,inc-dw-hadoop-151-9:2181";
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
// TODO Auto-generated method stub
// 创建一个与服务器的连接
ZooKeeper zk = new ZooKeeper(connectString, 
       ClientBase.CONNECTION_TIMEOUT, new Watcher() { 
           // 监控所有被触发的事件
           public void process(WatchedEvent event) { 
               System.out.println("已经触发了" + event.getType() + "事件!"); 
           } 
       }); 
// 创建一个目录节点
zk.create("/testRootPath", "testRootData".getBytes(), Ids.OPEN_ACL_UNSAFE,
  CreateMode.PERSISTENT); 
// 创建一个子目录节点
zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(),
  Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); 
System.out.println(new String(zk.getData("/testRootPath",false,null))); 
// 取出子目录节点列表
System.out.println(zk.getChildren("/testRootPath",true)); 
// 修改子目录节点数据
zk.setData("/testRootPath/testChildPathOne","modifyChildDataOne".getBytes(),-1); 
System.out.println("目录节点状态:["+zk.exists("/testRootPath",true)+"]"); 
// 创建另外一个子目录节点
zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(), 
  Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); 
System.out.println(new String(zk.getData("/testRootPath/testChildPathTwo",true,null))); 
// 删除子目录节点
zk.delete("/testRootPath/testChildPathTwo",-1); 
zk.delete("/testRootPath/testChildPathOne",-1); 
// 删除父目录节点
zk.delete("/testRootPath",-1); 
// 关闭连接
zk.close(); 
}


}
原创粉丝点击