zk常见异常以及简单命令的使用

1. zk常见异常
端口被占用:Address already in use
解决办法:查找该端口号,然后kill掉,重启zk
2.磁盘没有空间
No space left on device
清理一下磁盘空间
3.无法找到myid文件
invalid config,exiting abnormally
只需要在数据目录创建一个myid文件即可
4.Cannot open channel to 2 at election address 
快速启动其他机器

客户端脚本
创建 create 【-s】【-e】path data acl
读取ls ls path 【watch】path指定数据节点的路径
get命令 get path 【watch】
更新 set path data【version】
删除 delete path 【version】

 public static void main(String[] args) throws InterruptedException {
       /* //连接zookeeper
        String servers="192.168.10.217:2181";
        ZkClient client = new ZkClient(servers,10000,10000,new SerializableSerializer());
        System.out.println("success");*/
      // ============================
        String servers="192.168.10.217:2181";
        ZkClient client = new ZkClient(servers,10000,10000,new SerializableSerializer());
        System.out.println("success");
        //创建节点
        String s = client.create("/test3", "6", CreateMode.PERSISTENT);

        System.out.println(s);
        //获取节点数据
       Object o = client.readData(s);
        System.out.println(o.toString());
        //判断节点是否存在
        boolean exists = client.exists(s);
        System.out.println(exists);
        //更新节点信息
        client.writeData(s,"66");
        //订阅节点信息的改变
        client.subscribeChildChanges("/test3", new IZkChildListener() {
            @Override
            public void handleChildChange(String s, List list) throws Exception {
                System.out.println("changed");

            }
        });

        client.subscribeDataChanges(s, new IZkDataListener() {
            @Override
            public void handleDataChange(String s, Object o) throws Exception {
                System.out.println("changed+++");
            }

            @Override
            public void handleDataDeleted(String s) throws Exception {
                System.out.println("Deleted+++");
            }
        });
        boolean b = client.deleteRecursive(s);
        System.out.println("Deleted");
    }
}

你可能感兴趣的:(zookeeper)