一,Zookeeper链接

1.1 普通链接

  1.2 带参数链接

二,使用Zookeeper命令的简单操作步骤

  2.1 查看子节点(ls)

  2.2 创建节点(create)

  2.3 修改节点(set)

  2.4 查看节点数据(get)

  2.5 删除节点(rmr)

  2.6 监听节点(watch)

三,节点类型

  3.1 临时节点

  3.2 永久节点

  3.3 带序号节点

 

 

正文

一,Zookeeper链接

  链接zookeeper的API有常用的两种,一种是命令行客户端,而另一种是Java客户端,在这将会对命令行客户端的链接进行讲解。在zookeeper的bin目录中有客户端的可执行文件zkCli.sh用来作为命令行客户端连接,如下图:

  

ZooKeeper连接hbase zookeeper 连接_客户端

   这里的普通链接是指,连接本机的zookeeper服务,链接命令:

zkCli.sh

   下图是个链接实例:

  

ZooKeeper连接hbase zookeeper 连接_数据_02

1.2 带参数链接

   带参数链接比普通链接多个参数,是链接到非本机服务端,链接命令:

zkCli.sh -server hd2

二,zookeeper常用命令

2.1 查看子节点(ls)

// 命令 查看的节点路径(绝对路径) 是否监听
ls path watch
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]

  如实例:

  

ZooKeeper连接hbase zookeeper 连接_数据_03

  

ZooKeeper连接hbase zookeeper 连接_客户端_04

2.2 创建节点(create)

// 命令 (节点类型) 节点路径 数据
create [-s] [-e] path data
[zk: localhost:2181(CONNECTED) 2] create /a "hellow world"
Created /a

  如下实例:

  (1),普通永久节点

  

ZooKeeper连接hbase zookeeper 连接_客户端_05

  (2),临时节点

  

ZooKeeper连接hbase zookeeper 连接_客户端_06

  (3),带序号节点

  

ZooKeeper连接hbase zookeeper 连接_zookeeper_07

2.3 查看节点数据(get)

// 命令 节点路径 是否watch
get path [watch]
[zk: localhost:2181(CONNECTED) 4] get /a
hellow world
cZxid = 0x5000000006
ctime = Wed Mar 21 20:01:02 CST 2019
mZxid =  0x5000000006
mtime = Wed Mar 21 20:01:02 CST 2019
pZxid =  0x5000000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: localhost:2181(CONNECTED) 5]

   如下图示例:

   

ZooKeeper连接hbase zookeeper 连接_zookeeper_08

   

ZooKeeper连接hbase zookeeper 连接_客户端_09

2.4 修改节点(set)

// 命令 节点路径 数据
set path data
[zk: localhost:2181(CONNECTED) 6] set /a "watch data"
cZxid = 0x100000002
ctime = Wed Mar 21 20:01:02 CST 2019
mZxid = 0x100000004
mtime = Wed Mar 21 20:04:10 CST 2019
pZxid = 0x100000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: localhost:2181(CONNECTED) 7]

  如下示例:

  

ZooKeeper连接hbase zookeeper 连接_ZooKeeper连接hbase_10

  

ZooKeeper连接hbase zookeeper 连接_客户端_11

2.5 删除节点(rmr)

// 命令 路径
rmr path
[zk: localhost:2181(CONNECTED) 6] rmr /a/b
[zk: localhost:2181(CONNECTED) 6] ls /a
[]

   如下示例:

   

ZooKeeper连接hbase zookeeper 连接_客户端_12

2.6 监听节点(watch)

   

// 命令 节点路径 watch
get path watch
[zk :locahhost:2181(CONNECTED) 36] get /a watch
hellow world
cZxid = 0x50000000006
cTime = Mon May 13 10:52:38 EDT 2019
mZxid = 0x50000000006
mTime = Mon May 13 10:52:38 EDT 2019
pZxid = 0x5000000000e
cversion = 7
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 3

  上述代码是开启节点监听,当有别的客户端修改了节点/a的数据,改服务端就一会接到消息:如下

  另一客户端修改:

  

ZooKeeper连接hbase zookeeper 连接_数据_13

  修改后监听后的情况:

  

ZooKeeper连接hbase zookeeper 连接_ZooKeeper连接hbase_14

  下面是另一种节点监听:(监听的是子节点是否有增加或删除)

  

ZooKeeper连接hbase zookeeper 连接_数据_15

  修改的客户端:

  

ZooKeeper连接hbase zookeeper 连接_zookeeper_16

三,节点类型

3.1 临时节点

   创建者一旦跟集群断开联系,zk就会将这个节点删除

3.2 永久节点

   创建者就算跟集群断开联系,该类节点也会持久存在与zk集群中

3.3 带序号节点

   这类节点,zk会自动拼接上一个序号,而且序号是递增的

   综上有以下组合类型,在创建的时候配置不同带参数即可:  

:持久不带序号

:短暂不带序号

且 SEQUENTIAL   :持久且带序号

且 SEQUENTIAL  :短暂且带序号