1. 前言

在3台机器分别部署了zookeeper-3.4.5,本文操作是在此基础上进行的。部署详情参见上一篇文章

2. 客户端登录与帮助查看

 # 由于是集群模式,所以可以在3台机器的其中任意一台进行登录,操作结果和数据也会同步到其他机器
[root@docker01 bin]# pwd
/app/zookeeper-3.4./bin
[root@docker01 bin]# ll
total
-rwxr-xr-x games Oct README.txt
-rwxr-xr-x games Oct zkCleanup.sh
-rwxr-xr-x games Oct zkCli.cmd
-rwxr-xr-x games Oct zkCli.sh
-rwxr-xr-x games Oct zkEnv.cmd
-rwxr-xr-x games Oct zkEnv.sh
-rwxr-xr-x games Oct zkServer.cmd
-rwxr-xr-x games Oct zkServer.sh
-rw-r--r-- root root May : zookeeper.out
[root@docker01 bin]# ./zkCli.sh # 客户端登录
……………… # 一些摘要信息
[zk: localhost:(CONNECTED) ]
[zk: localhost:(CONNECTED) ] help # 客户端帮助信息
ZooKeeper -server host:port cmd args
stat path [watch] # 查看路径【节点】属性信息 [watch] 观察模式,有改变则会被通知,watch一次有效一次
set path data [version] # 设置/修改节点信息
ls path [watch] # 查看路径【节点】 [watch] 观察模式,有改变则会被通知,watch一次有效一次
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version] # 删除节点
sync path
listquota path
rmr path # 递归删除
get path [watch] # 更具路径【节点】得到信息 [watch] 观察模式,有改变则会被通知,watch一次有效一次
create [-s] [-e] path data acl # 创建节点和数据 -s 序列化【避免重复】 -e 临时数据【常用】
addauth scheme auth
quit # 退出客户端
getAcl path
close
connect host:port # 可以连接到其他客户端,前提在一个集群内
[zk: localhost:(CONNECTED) ]

2.1.  数据的属性说明

属性

描述

czxid

节点被创建的Zxid值

mzxid

节点被修改的Zxid值

ctime

节点被创建的时间

mtime

节点最后一次被修改的时间

versoin

节点被修改的版本号

cversion

节点的所拥有子节点被修改的版本号

aversion

节点的ACL被修改的版本号

emphemeralOwner

如果此节点为临时节点,那么它的值为这个节点拥有者的会话ID;否则,它的值为0

dataLength

节点数据域的长度

numChildren

节点拥有的子节点个数

3.  常用操作

3.1.  切换到其他客户端

 [zk: localhost:(CONNECTED) ] connect 172.16.1.13:
……………… # 一些摘要信息
WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 172.16.1.13:(CONNECTED) ]

3.2.  节点的增删改查

3.2.1.   增加节点

 [zk: 172.16.1.13:(CONNECTED) ] ls /
[zookeeper]
[zk: 172.16.1.13:(CONNECTED) ] create /zhang01/yang01 test0001 # 保证父节点存在
Node does not exist: /zhang01/yang01
[zk: 172.16.1.13:(CONNECTED) ]
[zk: 172.16.1.13:(CONNECTED) ] create /zhang01 test01
Created /zhang01
[zk: 172.16.1.13:(CONNECTED) ] ls /
[zookeeper, zhang01]

3.2.2.    查询节点

 [zk: 172.16.1.13:(CONNECTED) ] ls /
[zookeeper, zhang01]
[zk: 172.16.1.13:(CONNECTED) ] get /zhang01
test01 # 内容
cZxid = 0x100000007 # 创建数据时的事物编号
ctime = Sat May :: CST # 创建时间
mZxid = 0x100000007 # 修改数据时的事物编号
mtime = Sat May :: CST # 修改时间
pZxid = 0x100000007 # 持久化事物编号
cversion = # 创建版本号
dataVersion = # 数据版本
aclVersion = # 权限版本
ephemeralOwner = 0x0 # 持久接待
dataLength = # 数据长度
numChildren = # 子节点数

3.2.3.    修改节点

 [zk: 172.16.1.13:(CONNECTED) ] ls /
[zookeeper, zhang01]
[zk: 172.16.1.13:(CONNECTED) ] set /zhang01 # 修改节点信息
cZxid = 0x100000007
ctime = Sat May :: CST
mZxid = 0x100000009
mtime = Sat May :: CST
pZxid = 0x100000007
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren =
[zk: 172.16.1.13:(CONNECTED) ] get /zhang01 cZxid = 0x100000007
ctime = Sat May :: CST
mZxid = 0x100000009
mtime = Sat May :: CST
pZxid = 0x100000007
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren =

3.2.4.    节点常规删除

 [zk: localhost:(CONNECTED) ] ls /zhang01
[test04, test03, test02, test01]
[zk: localhost:(CONNECTED) ] ls /zhang01/test04 # 没有子节点
[]
[zk: localhost:(CONNECTED) ] get /zhang01/test04
date_test04
cZxid = 0x10000000d
………………
[zk: localhost:(CONNECTED) ] delete /zhang01/test04 # 删除子节点
[zk: localhost:(CONNECTED) ] ls /zhang01 # 经常看删除成功
[test03, test02, test01]
[zk: localhost:(CONNECTED) ] delete /zhang01 # 如果有子节点那么不能删除
Node not empty: /zhang01

3.2.5.    递归删除节点

 [zk: localhost:(CONNECTED) ] ls /zhang01
[test03, test02, test01]
[zk: localhost:(CONNECTED) ] rmr /zhang01 # 递归删除
[zk: localhost:(CONNECTED) ] ls /zhang01 # 删除成功
Node does not exist: /zhang01
[zk: localhost:(CONNECTED) ] ls /
[zookeeper]

3.3.  持久节点和临时节点

第一台客户端

 [zk: localhost:(CONNECTED) ] ls /
[zookeeper]
[zk: localhost:(CONNECTED) ] create /zhang01 yang01 # 默认持久节点
Created /zhang01
[zk: localhost:(CONNECTED) ] create -e /zhang02 yang02 # 创建临时节点
Created /zhang02
[zk: localhost:(CONNECTED) ] ls /
[zookeeper, zhang02, zhang01]
[zk: localhost:(CONNECTED) ] get /zhang01
yang01
cZxid = 0x100000018
ctime = Sat May :: CST
mZxid = 0x100000018
mtime = Sat May :: CST
pZxid = 0x100000018
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0 # 代表持久节点
dataLength =
numChildren =
[zk: localhost:(CONNECTED) ] get /zhang02
yang02
cZxid = 0x100000019
ctime = Sat May :: CST
mZxid = 0x100000019
mtime = Sat May :: CST
pZxid = 0x100000019
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x1639b3087ac0002 # 代表临时节点
dataLength =
numChildren =
[zk: localhost:(CONNECTED) ] quit # 退出当前客户端【那么当前这个客户端创建的临时节点会被自动删除】

第二台客户端

 # 之前可以正常查到,但是当上面的客户端退出后,节点/zhang02 被自动删除了
[zk: localhost:(CONNECTED) ] ls /
[zookeeper, zhang01]

3.4.  节点序列化

 [zk: localhost:(CONNECTED) ] ls /
[zookeeper, zhang01]
[zk: localhost:(CONNECTED) ] ls /zhang01
[]
[zk: localhost:(CONNECTED) ]
[zk: localhost:(CONNECTED) ] create -s /zhang01/test01 test01
Created /zhang01/test010000000002
[zk: localhost:(CONNECTED) ] create -s -e /zhang01/test02 test02
Created /zhang01/test020000000003
[zk: localhost:(CONNECTED) ]
[zk: localhost:(CONNECTED) ] ls /zhang01
[test020000000003, test010000000002]

3.5.  watch模式节点操作

watch监听有不同的类型,有监听状态的stat ,内容的get,目录结构的ls。

3.5.1.    watch节点属性

监听自身属性改变和节点删除

 # 第一台客户端监听
[zk: localhost:(CONNECTED) ] ls /
[zookeeper, zhang01]
[zk: localhost:(CONNECTED) ] stat /zhang01 watch
cZxid = 0x100000018
ctime = Sat May :: CST
mZxid = 0x10000001e
mtime = Sat May :: CST
pZxid = 0x100000018
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren = # 第二台客户端操作
[zk: localhost:(CONNECTED) ] set /zhang01 yyyywwwww # 修改节点信息
…………………… # 第一台客户端自动响应
[zk: localhost:(CONNECTED) ]
WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/zhang01

3.5.2.    watch路径

 # 第一台客户端
[zk: localhost:(CONNECTED) ] ls /zhang01 watch
[] # 第二台客户端操作
[zk: localhost:(CONNECTED) ] create -e /zhang01/test01 test01
Created /zhang01/test01 # 第一台客户端自动响应
[zk: localhost:(CONNECTED) ]
WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/zhang01 [zk: localhost:(CONNECTED) ]

3.5.3.    watch节点

节点自身属性改变和节点被删除都会被通知

自身属性改变

 # 第一台客户端
[zk: localhost:(CONNECTED) ] ls /
[zookeeper, zhang01]
[zk: localhost:(CONNECTED) ] ls /zhang01
[test01]
[zk: localhost:(CONNECTED) ]
[zk: localhost:(CONNECTED) ] get /zhang01/test01 watch
test01
cZxid = 0x100000020
……………… # 第二台客户端操作
[zk: localhost:(CONNECTED) ] set /zhang01/test01 kkkk
cZxid = 0x100000020
ctime = Sat May :: CST
……………… # 第一台客户端自动响应
[zk: localhost:(CONNECTED) ]
WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/zhang01/test01 [zk: localhost:(CONNECTED) ]

节点删除

 # 第一台客户端
[zk: localhost:(CONNECTED) ] get /zhang01/test01 watch
kkkk
cZxid = 0x100000020
……………… # 第二台客户端操作
[zk: localhost:(CONNECTED) ] delete /zhang01/test01 # 第一台客户端自动响应
[zk: localhost:(CONNECTED) ]
WATCHER:: WatchedEvent state:SyncConnected type:NodeDeleted path:/zhang01/test01 [zk: localhost:(CONNECTED) ]

zookeeper-03 命令行操作的更多相关文章

  1. Zookeeper的命令行操作(三)

    Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...

  2. ZooKeeper常用命令行操作

    ZooKeeper常用命令行操作 通过./zkCli.sh 打开zk的客户端进入命令行后台 ls/ls2 列出当前节点下的子节点 ls2还会列出当前节点的状态 [zk: localhost:2181( ...

  3. zookeeper客户端命令行操作

    一.命令行 (1)使用zookeeper安装bin目录下的./zkCli.sh连接到zookeeper服务器上,基本语法如下: ./zkCli.sh -timeout 0 -r -server ip: ...

  4. 第4章 ZK基本特性与基于Linux的ZK客户端命令行学习 4-1 zookeeper常用命令行操作

    ls path [watch] watch是一个监督者.quota是zookeeper的子目录.目录就是节点的意思,对于zookeeper来说它是以一个节点来说的,所以说/就是根节点,zookeepe ...

  5. Zookeeper(一)CentOS7.5搭建Zookeeper3.4.12集群与命令行操作

    一. 分布式安装部署 1.0 下载地址 官网首页: https://zookeeper.apache.org/ 下载地址: http://mirror.bit.edu.cn/apache/zookee ...

  6. Zookeeper 安装及命令行操作

    [参考文章]:[分布式]Zookeeper使用--命令行 [参考文章]:zookeeper的数据模型 [参考文章]:zookeeper ACL使用 1. 安装包下载 官方下载地址 选择一个具体的版本进 ...

  7. kafka工作流程| 命令行操作

    1.  概述 数据层:结构化数据+非结构化数据+日志信息(大部分为结构化) 传输层:flume(采集日志--->存储性框架(如HDFS.kafka.Hive.Hbase))+sqoop(关系型数 ...

  8. Kafka命令行操作及常用API

    一.Kafka命令行操作 1.查看当前集群已存在的主题 bin/kafka-topic.sh --zookeeper hd09-01:2181 --list 2.创建主题 bin/kafka-topi ...

  9. Zookeeper常用命令行及API

    一.Zookeeper常用命令行 1.启动zookeeper客户端(在启动zookeeper集群后启动进行调试) zkCli.sh 2.查看帮助.操作历史 help.history 3.查看当前Zno ...

  10. 4、Kafka命令行操作

    Kafka命令行操作 1)查看当前服务器中的所有topic [test@ip101 kafka]$ bin/kafka-topics.sh --zookeeper ip101:2181 --list ...

随机推荐

  1. 修改Spring Boot默认的上下文

    前言 默认情况下,Spring Boot使用的服务上下文为"/",我们可以通过"http://localhost:PORT/" 直接诶访问应用: 但是在生产环境 ...

  2. 使用crypt配置Basic Auth登录认证

    简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...

  3. java使用google开源工具实现图片压缩

    前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也是相当的高,当然占用的存储空 ...

  4. jQuery检查复选框是否被选

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. vue 动态组件、父子组件传参

    1.vue中的自定义属性并获得属性的值 自定义属性::data-id语法为 :data-属性  获取属性的值:ev.target.dataset.id 2.vue父子组件传值 3.动态组件使用

  6. 页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果

    Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航 ...

  7. 偏流角(Draft Angle)在等距螺旋中的作用

    劳动改变人,思维改变世界.我们可以接着聊螺旋线了. 在飞行程序设计中,偏流角(Draft Angle简写为DA)通常指得是受侧风影响航向偏移的最大角度.用速度向量来表示时,是图1中的三角形关系: 图1 ...

  8. 改BUG方法

    ---恢复内容开始--- 今天改了半天参数,后来发现原来是表设置错了,于是决定总结出遇到BUG时的方法,等下次再遇到BUG时,过一遍每个方法就会减少解决BUG的时间,话不多说,写 ①检查表.数据库是否 ...

  9. 动态规划法(四)0-1背包问题(0-1 Knapsack Problem)

      继续讲故事~~   转眼我们的主人公丁丁就要离开自己的家乡,去大城市见世面了.这天晚上,妈妈正在耐心地帮丁丁收拾行李.家里有个最大能承受20kg的袋子,可是妈妈却有很多东西想装袋子里,已知行李的编 ...

  10. CentOS 7 安装 .Net Core 2.0 详细步骤

    轰轰烈烈的Core 热潮,从部署环境开始.参照了网上不少前辈的教程,也遇到不少的坑,这边做个完整的笔记. 一.构建.Net core 2的应用程web发布,因为是用来测试centos上的core 环境 ...