1.进入zookeeper的bin目录,检查服务端是否已启动
cd /usr/local/zookeeper/bin
./zkServer.sh status
2.如果没有运行则启动。 执行: ./zkServer.sh start
3.执行客户端连接至zookeeper服务端。 执行: ./zkCli.sh
默认连接的地址是localhost,默认端口是2181;如果地址是远程IP或端口修改,则通过 ./zkCli.sh -server IP地址:端口号 的方式连接。
4.输入help(实际上输入任何错误的命令都会提示),列出所有的客户端指令。
5.数据节点的增删改查
stat显示节点的具体状态,默认根节点下有一个zookeeper节点,可以通过指令查看:stat /zookeeper
cZxid:创建节点的id;ctime:创建时间;mZxid:修改节点的id;mtime:修改时间;pZxid:父节点id;cversion:创建版本号;dataVersion:数据版本号;aclVersion:权限控制的版本号;ephemeralOwner:临时节点为0,持久节点则表示该节点绑定的sessionid;dataLength:数据长度;numChildren:子节点个数;
create创建子节点【create [-s] [-e] path data acl】,参数-s表示是否为一个有序的序列;-e表示是否为临时节点;path表示节点路径;data表示节点存储的数据;acl表示节点操作权限(access control list);-s可选,默认是非序列;-e可选,默认是持久化;acl可选,默认是world:anyone:cdrwa(即所有用户都可操作);
示例指令: create /zk/abc ,不能一次创建多个节点,提示节点不存在,父节点必须存在。
示例指令:create /linux linux ,根目录下创建linux节点,节点存放数据linux。
get指令可以查看节点的数据【get path [watch]】,watch表示事件监听。
示例指令:get /linux
set指令可以修改节点数据【set path data [version]】,version表示数据版本,可选项,不填默认适配所有版本,如果填写则进行数据版本的匹配,如果匹配则修改节点的数据,否则提示版本不存在。
示例指令:set /linux linux2 111
示例指令:set /linux linux2 0 (get指令中dataVersion的值就是数据版本号)执行set命令后数据版本会自增,此时变成了1.
delete指令可以删除节点【delete path [version]】,version同样也是数据版本号。可选项,填写则进行版本匹配。不填写则匹配所有版本。
示例指令:delete /linux ,执行完毕后没有任何提示表示成功。
ls指令可以查看节点下的子节点信息。
示例指令: ls / ,可以看到linux节点已经不存在了。
ls2是ls + stat的结合版,同时显示子节点和节点状态
示例指令: ls2 /
history指令可以查看执行过的历史记录。
示例指令:history
该指令记录的是当前会话的历史记录,这时我断开连接重新建立新的会话,之前的记录没有了。
示例指令:history
rmr可以删除多级目录【rmr path】,为了演示先创建2层目录结构,然后再通过该指令删除。
具体操作如下:
6.setquota、listquota、delquota,用于限制节点的配额;
setquota 设置节点配额;【setquota -n|-b val path】-n表示限制子节点的个数;-b表示限制数据的最大长度;val是具体的值(限制个数或限制数据);path表示节点路径;
listquota 显示配额列表;【listquota path】path表示节点路径;
delquota 删除节点配额;【delquota [-n|-b] path】-n表示限制子节点的个数;-b表示限制数据的最大长度;path表示节点路径;
7.客户端非常用:close 断开当前会话;connect host:port建立连接;quit退出断开连接;
8.权限相关的指令setAcl、getAcl、addauth;ACL权限:cdrwa; 分别表示:CREATE(创建),DELETE(删除),READ(读),WRITE(写),ADMIN(设置权限)
setAcl path acl; 设置节点的权限
getAcl path;获取节点的权限
addauth scheme auth;注册会话授权;scheme有三种模式:world;auth或digest,前者是明文,后者是密文;ip
auth是明文模式;digest是密文模式;
设置指定的IP地址访问
9.watch表示事件监听:节点数据变更(NodeDataChanged);节点删除(NodeDeleted);子节点变更(NodeChildrenChanged);
参数中可选watch的指令都可以监听:stat path [watch];ls path [watch];ls2 path [watch];get path [watch]
上述的示例操作演示了子节点创建;节点数据修改;节点删除操作;需要注意的是,zookeeper的节点监听事件是一次性的;