在zk安装成功后,怎么通过客户端连接呢?
要回答这个问题,先明确一下什么叫做zk的客户端,zk自带了进入zookeeper交互模式的脚本------zkCli.sh,直接执行"./zkCli.sh"就可以进入与zookeeper的交互模式了 。比如现在我在node3机器上执行这个zkCli.sh了,那么node3就相当于一个客户端了。(比如java程序连接了zkserver集群,那么java程序就是客户端)。
在113上连接zk集群,其中113机器是我随便挑的,角色是个follower,结果类似下图:
[root@node113 /usr/local/zookeeper/zookeeper-3.4.9/bin]#./zkCli.sh ......(打印的很多信息) [zk: localhost:2181(CONNECTED) 0]
查看zk根目录下的所有znode节点:
[zk: localhost:2181(CONNECTED) 2] ls / [20171214, zookeeper]
进入与zookeeper的交互模式后,有哪些命令可以使用呢,可以使用help命令来查看帮助:
[zk: localhost:2181(CONNECTED) 3] help ZooKeeper -server host:port cmd args connect host:port get path [watch] ls path [watch] set path data [version] rmr path delquota [-n|-b] path quit printwatches on|off create [-s] [-e] path data acl stat path [watch] close ls2 path [watch] history listquota path setAcl path acl getAcl path sync path redo cmdno addauth scheme auth delete path [version] setquota -n|-b val path
创建一个节点:
[zk: localhost:2181(CONNECTED) 5] create /appdata hello Created /appdata [zk: localhost:2181(CONNECTED) 6] ls / [appdata, 20171214, zookeeper] [zk: localhost:2181(CONNECTED) 7]
说明:节点,在zookeeper里面叫znode节点,create 的时候可以加-e或者-s选项。-e:ephemeral 表示创建的是临时性节点,客户端通过quit退出后短暂的节点就没有了,默认是persist的,即默认创建的节点是持久化的,除非你自己删除,不然永久存在。
-s:sequential,表示创建的是有序列的节点。-s类型的默认会在重名的znode节点名字后加序列号以避免重复。
得到节点里面的数据:
[zk: localhost:2181(CONNECTED) 7] get /appdata hello cZxid = 0x300000002 ctime = Fri Jan 05 02:37:33 EST 2018 mZxid = 0x300000002 mtime = Fri Jan 05 02:37:33 EST 2018 pZxid = 0x300000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0
说明:cZxid:表示节点/appdata创建时zk分配的id。
mZxid:modify zid
numChildren:子目录的格式
查看某个目录的子节点:
[zk: localhost:2181(CONNECTED) 16] create /201801 test Created /201801 [zk: localhost:2181(CONNECTED) 17] create /201801/05 test2 Created /201801/05 [zk: localhost:2181(CONNECTED) 18] ls /201801 [05]
修改znode节点里面的数据,使用"set 节点路径 内容"格式的命令:
[zk: localhost:2181(CONNECTED) 19] set /appdata hi cZxid = 0x300000002 ctime = Fri Jan 05 02:37:33 EST 2018 mZxid = 0x300000005 mtime = Fri Jan 05 02:47:37 EST 2018 pZxid = 0x300000002 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 2 numChildren = 0 [zk: localhost:2181(CONNECTED) 20] get /appdata hi cZxid = 0x300000002 ctime = Fri Jan 05 02:37:33 EST 2018 mZxid = 0x300000005 mtime = Fri Jan 05 02:47:37 EST 2018 pZxid = 0x300000002 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 2 numChildren = 0
如何退出zk的客户端,使用“quit”命令:
[zk: localhost:2181(CONNECTED) 21] quit