zkCli.sh

在 bin 目录下的  zkCli.sh  就是ZooKeeper客户端

./zkCli.sh -timeout 5000  -server 127.0.0.1:2181   客户端与ZooKeeper建立链接

timeout:超时时间,单位毫秒

r:只读模式,当节点坏掉的时候,还可以提供读服务

示例:

./zkCli.sh -timeout 5000 -server 127.0.0.1:2181

1 zhangliuningdeMacBook-Pro:bin sherry$ ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181

2 Connecting to 127.0.0.1:2181

3 2016-08-27 15:07:04,036 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18GMT4 2016-08-27 15:07:04,039 [myid:] - INFO [main:Environment@100] - Client environment:host.name=192.168.0.105

5 2016-08-27 15:07:04,039 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_716 2016-08-27 15:07:04,041 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation7 2016-08-27 15:07:04,041 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home/jre8 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/Users/sherry/Applications/zk1/bin/../build/classes:/Users/sherry/Applications/zk1/bin/../build/lib/*.jar:/Users/sherry/Applications/zk1/bin/../lib/slf4j-log4j12-1.6.1.jar:/Users/sherry/Applications/zk1/bin/../lib/slf4j-api-1.6.1.jar:/Users/sherry/Applications/zk1/bin/../lib/netty-3.7.0.Final.jar:/Users/sherry/Applications/zk1/bin/../lib/log4j-1.2.16.jar:/Users/sherry/Applications/zk1/bin/../lib/jline-0.9.94.jar:/Users/sherry/Applications/zk1/bin/../zookeeper-3.4.8.jar:/Users/sherry/Applications/zk1/bin/../src/java/lib/*.jar:/Users/sherry/Applications/zk1/bin/../conf:9 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/Users/sherry/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.10 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/var/folders/_n/d05bph5x5bl6k5p0pkx2g66m0000gn/T/11 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=12 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Mac OS X13 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=x86_6414 2016-08-27 15:07:04,042 [myid:] - INFO [main:Environment@100] - Client environment:os.version=10.11.515 2016-08-27 15:07:04,043 [myid:] - INFO [main:Environment@100] - Client environment:user.name=sherry16 2016-08-27 15:07:04,043 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/Users/sherry17 2016-08-27 15:07:04,043 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/Users/sherry/Applications/zk1/bin18 2016-08-27 15:07:04,044 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=5000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@531d72ca19 Welcome to ZooKeeper!20 2016-08-27 15:07:04,081 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)21 JLine support is enabled22 2016-08-27 15:07:04,187 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@876] - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session23 [zk: 127.0.0.1:2181(CONNECTING) 0] 2016-08-27 15:07:04,245 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x156cacb918b0000, negotiated timeout = 500024

25 WATCHER::26

27 WatchedEvent state:SyncConnected type:None path:null

如上,表示我们和ZooKeeper建立了连接,可以通过命令与ZooKeeper进行交互了

h:帮助列表

h

ZooKeeper-server host:port cmd argsstatpath [watch]

set path data [version]lspath [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]syncpath

listquota path

rmr path

get path [watch]

create [-s] [-e] path data acl

addauth scheme auth

quit

getAcl path

close

connect host:port

显示能够执行的命令

命令分类和数据库相似,大概可以分为增删改查四类

ZooKeeper数据结构:

大多数时候,我们队ZooKeeper的操作都是在对节点进行增删改查

常用命令:

查询相关指令

ls path:列出path下的文件

[zk: 127.0.0.1:2181(CONNECTED) 4] ls /[zookeeper]

如上:列出根目录节点下的所有文件,目前就只有一个系统自带的zookeeper节点

stat path:查看节点状态

[zk: 127.0.0.1:2181(CONNECTED) 6] stat /zookeeper

cZxid= 0x0ctime= Thu Jan 01 08:00:00 CST 1970mZxid= 0x0mtime= Thu Jan 01 08:00:00 CST 1970pZxid= 0x0cversion= -1dataVersion= 0aclVersion= 0ephemeralOwner= 0x0dataLength= 0numChildren= 1

cZxid:创建节点时的事务id

pZxid:子节点列表最后一次被修改的事务id

cversion:节点版本号

dataCersion:数据版本号

aclVerson:acl权限版本号

......

get path:获取指定节点的内容

ls2 path:列出path节点的子节点及状态信息

创建指令

create [-s] [-e] path data acl

1 [zk: 127.0.0.1:2181(CONNECTED) 10] create /node_1 123

2 Created /node_1

如上:在根目录创建了node_1节点,携带数据 123

使用 get /node_1 验证是否添加节点及其数据成功

[zk: 127.0.0.1:2181(CONNECTED) 15] create -e /node_1/node_1_1 234Created/node_1/node_1_1

创建了一个临时节点(-e),并且携带数据234,使用stat命令查看这个新建的临时节点

[zk: 127.0.0.1:2181(CONNECTED) 16] stat /node_1/node_1_1

cZxid= 0x200000003ctime= Sat Aug 27 15:27:30 CST 2016mZxid= 0x200000003mtime= Sat Aug 27 15:27:30 CST 2016pZxid= 0x200000003cversion= 0dataVersion= 0aclVersion= 0ephemeralOwner= 0x156cacb918b0000dataLength= 3numChildren= 0

ephemeralOwner值不再是0,表示这个临时节点的版本号,如果是永久节点则其值为 0x0

1 [zk: 127.0.0.1:2181(CONNECTED) 1] create -s /node_1/node_1_1 234

2 Created /node_1/node_1_10000000001

通过使用-s参数,创建一个顺序节点,我们虽然指定的节点名是node_1_1,但是实际上,名称却是 node_1_10000000001,如果我们重复执行:

[zk: 127.0.0.1:2181(CONNECTED) 2] create -s /node_1/node_1_1 234Created/node_1/node_1_10000000002

效果如上

这个特性,我们可以利用一下,生成在分布式环境下的主键生成器

-s 和 -e 可以同时使用

退出:

quit

[zk: 127.0.0.1:2181(CONNECTED) 19] quit

Quitting...2016-08-27 15:29:44,760 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x156cacb918b0000closed2016-08-27 15:29:44,763 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x156cacb918b0000

这个时候如果重新登录,执行 ls /node_1,发现其子节点是空的,创建的node_1_1子节点不见了,那是因为之前创建的时候就已经指定了,我们创建的是一个临时节点。当客户端会话结束后,临时节点是会被删除了。

修改相关指定:

set path data [version]

[zk: 127.0.0.1:2181(CONNECTED) 14] set /node_1 998cZxid= 0x200000002ctime= Sat Aug 27 15:24:39 CST 2016mZxid= 0x20000000amtime= Sat Aug 27 15:38:40 CST 2016pZxid= 0x200000008cversion= 5dataVersion= 2aclVersion= 0ephemeralOwner= 0x0dataLength= 3numChildren= 3

如果我们多次修改,会发现  dataVersion ,也就是数据版本,在不停得发生变化(自增)

如果我们在set的时候手动去指定了版本号,就必须和上一次查询出来的结果一致,否则 就会报错。

这个可以用于我们在修改节点数据的时候,保证我们修改前数据没被别人修改过。因为如果别人修改过了,我们这次修改是不会成功的

删除指令:

delete path [version]

删除指定节点数据,其version参数的作用于set指定一致

delete /node_1/node_1_10000000001

整个节点全删除

注意:delete只能删除不包含子节点的节点,如果要删除的节点包含子节点,使用rmr命令

rmr /node_1

zkcli远程连接_ZooKeeper客户端 zkCli.sh 节点的增删改查相关推荐

  1. Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载

    前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...

  2. HTML DOM节点的增删改查

    上篇博客中,我们已经初步接触了DOM基础,但是我们学习是为了能够更好地应用,今天我们就来看看DOM节点的增删改查. 不管在哪里,我们想要操作一个东西,总是应该先去获得它.那么我们怎么获得呢? HTML ...

  3. html增删改查按钮控件,HTML DOM节点的增删改查

    上篇博客中,我们已经初步接触了DOM基础,可是我们学习是为了可以更好地应用,今天我们就来看看DOM节点的增删改查. 无论在哪里,我们想要操作一个东西,总是应该先去获得它.那么我们怎么获得呢? HTML ...

  4. 19 【节点的增删改查】

    22.节点的增删改查 22.1 节点的创建 document.createElement方法用来生成元素节点,并返回该节点. var newDiv = document.createElement(' ...

  5. element ui tree增删改查_clientgo连接K8s集群进行pod的增删改查

    背景 最近在看client-go源码最基础的部分,client-go的四类客户端,RestClient.ClientSet.DynamicClient.DiscoveryClient.其中RestCl ...

  6. django2 mysql驱动_Django框架学习(二)Django连接Mysql数据库,实现表的增删改查

    创建一个Django项目 方法: 1.使用 django-admin.py 管理工具来创建项目 2.用Pycharm专业版可以直接创建Django 项目 我直接用Pycharm创建的项目,比较简单,也 ...

  7. zkcli远程连接_zookeeper部署在远程linux下。本地测试联通性一直报CONNECTIONLOSS(-4)错。...

    阿里云部署了一个zookeeper,在本地windos系统中使用zkCli.cmd可以进行远程连接,但是在idea中的小程序无法连接到远程的zookeeper.报CONNECTIONLOSS(-4)错 ...

  8. zkcli远程连接_ZooKeeper 学习笔记(二)-API 操作和应用

    客户端 znode 可能含有数据,也可能没有.如果 znode 包含数据,那么数据存储为字节数组(byte array).字节数组的具体格式特定于每个应用的实现,ZooKeeper 不直接 提供解析支 ...

  9. zookeeper 数据节点的增删改查

    1.连接服务端 [root@localhost bin]# ./zkCli.sh -server 127.0.0.1:2181 Connecting to 127.0.0.1:2181 2018-05 ...

最新文章

  1. Maven系列学习(二)Maven使用入门
  2. SQLite学习手册(实例代码二)
  3. 11.6 mpstat:CPU信息统计
  4. datax的工具配置oracle,完全小白级DataX安装配置过程详解
  5. RTT内核对象——对象理解
  6. mysql 计算时区差_在MySQL中计算时区的偏移量
  7. mysql innodb 索引组织表_Mysql InnoDB引擎 -索引组织表
  8. 用命令行查看mysql,利用命令行查看Mysql数据库
  9. 未能将“C:\Program Files (x86)\DevExpress 2009.2\Components\Sources\DevExpress.DLL\DevExpress.XtraGrid.v
  10. libpng库的移植与使用
  11. php中notice怎么去掉,怎么关闭php的notice
  12. 计算机之父图灵获英女王赦免
  13. 微分方程求解一(常微分方程求解)
  14. 的计算机基本操作知识,电脑的基本操作知识有哪些
  15. fortran---说实话,不知道记录有什么用 写着玩吧
  16. 程控交换机与集团电话的区别是什么
  17. 人工智能的隐私保护探讨
  18. 数字经济是什么?如何发展数字经济?
  19. 实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
  20. 有道云笔记的markdown编辑器如何通过mathtype来写公式

热门文章

  1. js格式化xml并高亮显示关键字
  2. SQLServer------存储过程的使用
  3. Oracle PLSQL Demo - 04.数字FOR LOOP循环[NUMBERABLE (FOR) LOOP]
  4. 在$x_0$处全导数可逆的函数$f:\mathbf{R^n}\to\mathbf{R^n}$的一个性质
  5. SQL Server 2012新增的内置函数尝试
  6. [置顶] 金山云存储解决企业办公难题
  7. node事件循环 EventEmitter 异步I/O Buffer缓冲区 模块
  8. 扁平化设计的几个规律
  9. Python操作MySQL(二) ORM篇
  10. [Note] FrameFab Interesting Cut Results