ZooKeeper 客户端的使用
|
1
2
|
cd binzkCli.sh -timeout 5000 -server 27.154.242.214:5091 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[zk: 27.154.242.214:5091(CONNECTED) 2] hZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [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] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port |
|
1
2
|
[zk: 27.154.242.214:5091(CONNECTED) 11] create /note1 123Created /note1 |
-s 表示是顺序节点 -e表示为临时节点
|
1
2
|
[zk: 27.154.242.214:5091(CONNECTED) 11] create/note2 123Created /note2 |
顺序节点
|
1
2
3
4
|
[zk: 27.154.242.214:5091(CONNECTED) 1] create -s /note1/note13 1333Created /note1/note130000000002[zk: 27.154.242.214:5091(CONNECTED) 2] create -s /note1/note13 1333Created /note1/note130000000003 |
查看节点状态
|
1
2
3
4
5
6
7
8
9
10
11
12
|
[zk: 27.154.242.214:5091(CONNECTED) 12] stat /note1cZxid = 0xc0bctime = Sun Aug 21 07:42:06 CST 2016mZxid = 0xc0bmtime = Sun Aug 21 07:42:06 CST 2016pZxid = 0xc0bcversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 0 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[zk: 27.154.242.214:5091(CONNECTED) 13] get /note1123cZxid = 0xc0bctime = Sun Aug 21 07:42:06 CST 2016mZxid = 0xc0bmtime = Sun Aug 21 07:42:06 CST 2016pZxid = 0xc0bcversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 0 |
ls2列出当前节点的子节点同时输出stat信息
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[zk: 27.154.242.214:5091(CONNECTED) 16] create /note1/note11 456[zk: 27.154.242.214:5091(CONNECTED) 18] create /note1/note12 789[zk: 27.154.242.214:5091(CONNECTED) 19] ls2 /note1 [note12, note11]cZxid = 0xc0bctime = Sun Aug 21 07:42:06 CST 2016mZxid = 0xc0bmtime = Sun Aug 21 07:42:06 CST 2016pZxid = 0xc0dcversion = 2dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 2 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[zk: 27.154.242.214:5091(CONNECTED) 8] set /note1/note11 111cZxid = 0xc0cctime = Sun Aug 21 07:47:28 CST 2016mZxid = 0xc15mtime = Sun Aug 21 09:12:07 CST 2016pZxid = 0xc0ccversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 0[zk: 27.154.242.214:5091(CONNECTED) 9] get /note1/note11 111cZxid = 0xc0cctime = Sun Aug 21 07:47:28 CST 2016mZxid = 0xc15mtime = Sun Aug 21 09:12:07 CST 2016pZxid = 0xc0ccversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 0 |
删除节点
(rmr 循环删除节点及其子节点)
|
1
2
3
4
5
6
7
8
|
[zk: 27.154.242.214:5091(CONNECTED) 10] delete /note1/note11[zk: 27.154.242.214:5091(CONNECTED) 11] ls /note1 [note12, note130000000002, note130000000003][zk: 27.154.242.214:5091(CONNECTED) 12] delete /note1Node not empty: /note1[zk: 27.154.242.214:5091(CONNECTED) 13] rmr /note1[zk: 27.154.242.214:5091(CONNECTED) 14] ls / [server, zookeeper, config] |
配额相关的指令
设置配额
[setquota -n|-b val path]
-n限制子节点的个数 –b限制数据的长度
|
1
2
3
4
5
6
7
8
9
10
|
[zk: 27.154.242.214:5091(CONNECTED) 18] create /note1 123 Created /note1[zk: 27.154.242.214:5091(CONNECTED) 19] setquota -n 2 /note1 Comment: the parts are option -n val 2 path /note1[zk: 27.154.242.214:5091(CONNECTED) 20] create /note1/note11 11 Created /note1/note11[zk: 27.154.242.214:5091(CONNECTED) 21] create /note1/note12 12Created /note1/note12[zk: 27.154.242.214:5091(CONNECTED) 22] create /note1/note13 13 Created /note1/note13 |
发现超限了仅仅在日志记录超限信息的警告不会有异常如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[lzmhdev@lzmh01 zookeeper-3.4.8]$ cd bin [lzmhdev@lzmh01 bin]$ lsREADME.txt zkCleanup.sh zkCli.cmd zkCli.sh zkEnv.cmd zkEnv.sh zkServer.cmd zkServer.sh zookeeper.out[lzmhdev@lzmh01 bin]$ tail -f zookeeper.out at java.lang.Thread.run(Thread.java:745)2016-08-21 08:54:07,402 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:5091:NIOServerCnxn@1008] - Closed socket connection for client /123.59.54.18:34285 which had sessionid 0x156aa06f8d600012016-08-21 08:54:12,000 [myid:] - INFO [SessionTracker:ZooKeeperServer@355] - Expiring session 0x156aa06f8d60001, timeout of 5000ms exceeded2016-08-21 08:54:12,001 [myid:] - INFO [ProcessThread(sid:0 cport:5091)::PrepRequestProcessor@489] - Processed session termination for sessionid: 0x156aa06f8d600012016-08-21 08:54:21,201 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:5091:NIOServerCnxnFactory@192] - Accepted socket connection from /123.59.54.18:343382016-08-21 08:54:21,205 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:5091:ZooKeeperServer@900] - Client attempting to establish new session at /123.59.54.18:343382016-08-21 08:54:21,223 [myid:] - INFO [SyncThread:0:ZooKeeperServer@645] - Established session 0x156aa06f8d60002 with negotiated timeout 5000 for client /123.59.54.18:343382016-08-21 09:14:54,075 [myid:] - INFO [ProcessThread(sid:0 cport:5091)::PrepRequestProcessor@651] - Got user-level KeeperException when processing sessionid:0x156aa06f8d60002 type:delete cxid:0x15 zxid:0xc17 txntype:-1 reqpath:n/a Error Path:/note1 Error:KeeperErrorCode = Directory not empty for /note12016-08-21 10:10:41,080 [myid:] - WARN [SyncThread:0:DataTree@389] - Quota exceeded: /note1 count=3 limit=2 |
查看指定数据节点的配额情况
|
1
2
3
4
|
[zk: 27.154.242.214:5091(CONNECTED) 23] listquota /note1absolute path is /zookeeper/quota/note1/zookeeper_limitsOutput quota for /note1 count=2,bytes=-1Output stat for /note1 count=4,bytes=9 |
-1 长度没有限制
删除配额
|
1
2
3
4
5
|
[zk: 27.154.242.214:5091(CONNECTED) 24] delquota -n /note1[zk: 27.154.242.214:5091(CONNECTED) 25] listquota /note1 absolute path is /zookeeper/quota/note1/zookeeper_limitsOutput quota for /note1 count=-1,bytes=-1Output stat for /note1 count=4,bytes=9 |
查看历史
并重复执行
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[zk: 27.154.242.214:5091(CONNECTED) 26] history16 - create /note117 - setquota -n 2 /note1 18 - create /note1 12319 - setquota -n 2 /note1 20 - create /note1/note11 1121 - create /note1/note12 1222 - create /note1/note13 1323 - listquota /note124 - delquota -n /note125 - listquota /note126 - history[zk: 27.154.242.214:5091(CONNECTED) 27] redo 25absolute path is /zookeeper/quota/note1/zookeeper_limitsOutput quota for /note1 count=-1,bytes=-1Output stat for /note1 count=4,bytes=9 |
ZooKeeper 客户端的使用的更多相关文章
- 【分布式】Zookeeper客户端
一.前言 前篇博客分析了Zookeeper的序列化和通信协议,接着继续学习客户端,客户端是开发人员使用Zookeeper最主要的途径,很有必要弄懂客户端是如何与服务端通信的. 二.客户端 2.1 客户 ...
- zookeeper 客户端编程
zookeeper是一个分布式的开源的分布式协调服务,用它可以来现同步服务,配置维护.zookeeper的稳定性也是可以保证的,笔者曾参与过的使用zookeeper的两个应用,一个是用zookeepe ...
- ZooKeeper客户端事件串行化处理
为了提升系统的性能,进一步提高系统的吞吐能力,最近公司很多系统都在进行异步化改造.在异步化改造的过程中,肯定会比以前碰到更多的多线程问题,上周就碰到ZooKeeper客户端异步化过程中的一个死锁问题, ...
- zookeeper客户端操作
ZooKeeper客户端 zkCli.sh 节点的增删改查 在 bin 目录下的 zkCli.sh 就是ZooKeeper客户端 ./zkCli.sh -timeout 5000 -server ...
- zookeeper客户端 zkCli使用及常用命令
上篇(http://www.cnblogs.com/yangzhenlong/p/8270835.html)zk伪集群搭建好后,使用zkCli连接zk服务 切换到zk1/bin 目录,执行zkCli. ...
- Zookeeper客户端Curator基本API
在使用zookeper的时候一般不使用原生的API,Curator,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连.反复注册Watcher和NodeExistsExceptio ...
- Zookeeper客户端Curator的使用,简单高效
Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量. 1.引入依赖: ...
- Zookeeper客户端介绍
客户端是开发人员使用Zookeeper的主要的途径,以下内容将对Zookeeper的内部原理进行详细的学习和讲解.ZooKeeper的客户端主要有一下几个核心组件组成: Zookeeper:提供客户端 ...
- ZooKeeper客户端 zkCli.sh 节点的增删改查
zkCli.sh 在 bin 目录下的 zkCli.sh 就是ZooKeeper客户端 ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181 客户端与 ...
- Zookeeper客户端Curator使用详解
Zookeeper客户端Curator使用详解 前提 最近刚好用到了zookeeper,做了一个基于SpringBoot.Curator.Bootstrap写了一个可视化的Web应用: zookeep ...
随机推荐
- sublime 安装package control
import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d15146761 ...
- 六星经典CSAPP-笔记(7)加载与链接(上)
六星经典CSAPP-笔记(7)加载与链接 1.对象文件(Object File) 1.1 文件类型 对象文件有三种形式: 可重定位对象文件(Relocatable object file):包含二进制 ...
- Android ocr识别文字介绍(文字识别)
最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目 ...
- Dynamics CRM Entity Relationship Many to Many (N:N)
该博客对N:N的关系的查询列出了两种方式,一种RetrieveMultipleRequest,一种Fetch XML ,有谁对N:N关系的查询了解不是很深的可以学习下. http://andreasw ...
- 【Unity Shader】Unity Chan的卡通材质
写在前面 时隔两个月我终于来更新博客了,之前一直在学东西,做一些项目,感觉没什么可以分享的就一直没写.本来之前打算写云彩渲染或是Compute Shader的,觉得时间比较长所以打算先写个简单的. 今 ...
- Swift:一个简单的货币转换器App在iOS10中的分析和完善
这本不算是一个完整的货币转换App,只不过是一个小巧的学习性质的程序.该App覆盖了如下几个知识点: 多国语言的支持 通过网络Api接口读取数据 最后我们来修复一个原来代码中的一个小错误作为完美的收尾 ...
- MyEclipse如何全局搜索
1全局搜索的启动方式 CTRL+H 2全局搜索自己选择搜索方式 自己选择要搜索的东西,简单吧,里面还有很多好玩的东西需要你去发现,加油! [正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之 ...
- Android简易实战教程--第三十四话《 自定义SeekBar以及里面的一些小知识》
转载本专栏文章,请注明出处尊重原创:博客地址http://blog.csdn.net/qq_32059827/article/details/52849676:小杨的博客 许多应用可能需要加入进度,例 ...
- [Python] 图像简单处理(PIL or Pillow)
前几天弄了下django的图片上传,上传之后还需要做些简单的处理,python中PIL模块就是专门用来做这个事情的. 于是照葫芦画瓢做了几个常用图片操作,在这里记录下,以便备用. 这里有个字体文件,大 ...
- Android必知必会-带列表的地图POI周边搜索
如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...