Zookeeper之Shell和API 操作

来源:互联网 发布:c语言for的用法小技巧 编辑:程序博客网 时间:2024/06/11 12:56
Zookeeper的Shell操作:
1.连接到Zookeeper服务
[root@service zookeeper0]# bin/zkCli.sh -server localhost:2181
2.使用ls命令查看当前Zookeeper中包含的内容。
 # ls /
3.创建新的znode,使用create命令
 # create /zk testCRUD
4.获取节点中的值,get命令
 # get /zk
5.使用set命令来对znode关联的字符串进行设置
 # set /zk  myData
6.删除节点
 # delete /zk


Zookeeper的java API操作

public class ZooKeeperTest {
    private ZooKeeper zookeeper;
    
    /**
     * 连接zookeeper
     * @throws Exception
     */
    @Before
    public void setUp() throws Exception {
        String conStr = "service.bigdata.jack.cn:2181";
        int sessionTimeout = 30000;
        zookeeper = new ZooKeeper(conStr, sessionTimeout , new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                System.out.println("已经触发了" + event.getType() + "事件!");
            }
        });
    }
    
    @Test
    public void testCRUD() throws Exception {
         // 创建一个目录节点
         zookeeper.create("/testZK", "testZKData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
         // 创建一个子目录节点
         zookeeper.create("/testZK/childOne", "childOne".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
         System.out.println(new String(zookeeper.getData("/testZK",false,null)));
         // 取出子目录节点列表
         System.out.println(zookeeper.getChildren("/testZK",true));
         // 修改子目录节点数据
         zookeeper.setData("/testZK/childOne","modifyChildDataOne".getBytes(),-1);
         System.out.println("目录节点状态:["+zookeeper.exists("/testZK",true)+"]");
         // 创建另外一个子目录节点
         zookeeper.create("/testZK/childTwo", "childTwo".getBytes(),
                       Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
         System.out.println(new String(zookeeper.getData("/testZK/childTwo",true,null)));
         // 删除子目录节点
         zookeeper.delete("/testZK/childTwo",-1);
         zookeeper.delete("/testZK/childOne",-1);
         // 删除父目录节点
         zookeeper.delete("/testZK",-1);
    }
    @After
    public void cleanUp() throws InterruptedException {
        zookeeper.close();
    }
}
0 0
原创粉丝点击