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