设为首页 收藏本站
查看: 938|回复: 0

[经验分享] ZooKeeper实践三:客户端脚本

[复制链接]

尚未签到

发表于 2015-9-6 13:44:12 | 显示全部楼层 |阅读模式
  ZooKeeper是通过客户端脚本来操作的。客户端脚本:zkCli.sh,存放在ZooKeeper的bin目录下。
  默认连接本地的ZooKeeper服务器:


#zkCli.sh
  连接指定的ZooKeeper服务器:


#zkCli.sh –server  Server IP:port
  (注:Server IP代表服务器IP)
  1)    启动客户端脚本

本次环境: ZooKeeper 单机模式,并启动服务器


# zkCli.sh
Connecting to localhost:2181
…………………………..
2015-02-11 11:08:18,470 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1c507aaf
Welcome to ZooKeeper!   注1
2015-02-11 11:08:18,517 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)  注2
2015-02-11 11:08:18,527 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@849] - Socket connection established to localhost/127.0.0.1:2181, initiating session
JLine support is enabled   注3
2015-02-11 11:08:18,550 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x14b769a51fe0001, negotiated timeout = 30000  注4
WATCHER::
WatchedEvent state:SyncConnected type:None path:null  注5
[zk: Server IP:2181(CONNECTED) 0]
  注1:客户端启动初始化连接

注2:客户端尝试连接到ZooKeeper服务器

注3:连接成功,服务器创建一个session

注4:session创建成功

注5:服务器向客户端返回一个SyncConnected事件
  其中注2中” Will not attempt to authenticate using SASL (unknown error)”,网上说是解析不对,但是在hosts文件中添加解析后依然如此,看ZooKeeper书籍中也是如此:
DSC0000.jpg

暂时无法知晓原因,以及是否会产生影响。
  2)    可输入help查看命令帮助


[zk: localhost:2181(CONNECTED) 0] 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
  常用命令演示

1)    ls

使用ls命令,可以列出ZooKeeper指定节点下的所有的子节点,不过只能看到指定节点下第一级所有子节点。用法如下:

ls path [watch]
  其中,path表示的是指定数据节点的节点路径

执行如下命令:


[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
  第一次部署的ZooKeeper,默认在根节点”/”下面有一个叫做[zookeeper]的保留节点
  2)    create

使用create命令,可以创建一个ZooKeeper节点。用法如下:


create [-s] [-e] path data acl
  其中:-s或-e分别指定节点特性:顺序或临时节点。默认情况下,即不添加-s或-e参数的,创建的是持久节点。data代表节点的数据内容。acl是进行权限控制,缺省情况下,不做任何权限控制。

执行如下命令创建一个新节点:


[zk: localhost:2181(CONNECTED) 1] create /example "演示创建节点命令"
Created /example
  3)    get

使用get命令,可以获取ZooKeeper指定节点的数据内容和属性信息。用法如下:


get path [watch]
  执行如下命令:


[zk: localhost:2181(CONNECTED) 2] get /example
"演示创建节点命令"
cZxid = 0x4
ctime = Wed Feb 11 15:33:19 CST 2015
mZxid = 0x4
mtime = Wed Feb 11 15:33:19 CST 2015
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 26
numChildren = 0
  4)    set

使用set命令,可以更新指定节点的数据内容。用法如下:


set path data [version]
  其中,data就是要更新的数据新内容。version参数用于指定本次更新操作是基于ZNode的哪一个数据版本进行的。ZooKeeper中,节点的数据是有版本概念的。

执行如下命令:


[zk: localhost:2181(CONNECTED) 3] set /example "演示更新数据内容命令"
cZxid = 0x4
ctime = Wed Feb 11 15:33:19 CST 2015
mZxid = 0x7
mtime = Wed Feb 11 15:43:33 CST 2015
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 32
numChildren = 0
  使用get命令查看:


[zk: localhost:2181(CONNECTED) 4] get /example
"演示更新数据内容命令"
cZxid = 0x4
ctime = Wed Feb 11 15:33:19 CST 2015
mZxid = 0x7
mtime = Wed Feb 11 15:43:33 CST 2015
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 32
numChildren = 0
  使用set命令时带上版本参数:


[zk: localhost:2181(CONNECTED) 5] set /example "演示带版本参数更新" 1
cZxid = 0x4
ctime = Wed Feb 11 15:33:19 CST 2015
mZxid = 0xb
mtime = Wed Feb 11 15:46:33 CST 2015
pZxid = 0x4
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 29
numChildren = 0
  使用get命令查看:


[zk: localhost:2181(CONNECTED) 6] get  /example
"演示带版本参数更新"
cZxid = 0x4
ctime = Wed Feb 11 15:33:19 CST 2015
mZxid = 0xb
mtime = Wed Feb 11 15:46:33 CST 2015
pZxid = 0x4
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 29
numChildren = 0
  可以看到mtime, dataVersion, dataLength会随之变化。
  5)    delete

使用delete命令,可以删除ZooKeeper上的指定节点。用法如下:


delete path [version]
  其中,version参数和set命令中version参数的作用是一致的。

执行如下命令:


[zk: localhost:2181(CONNECTED) 7] delete /example
[zk: localhost:2181(CONNECTED) 8] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 9]
  需要注意:被删除的节点,该节点必须没有子节点存在,否则会出现出错信息:


Node not empty: /example
  执行如下命令:


[zk: localhost:2181(CONNECTED) 6] create /example/test "演示非空删除"
Created /example/test
[zk: localhost:2181(CONNECTED) 7] ls /
[example, zookeeper]
[zk: localhost:2181(CONNECTED) 8] ls /example
[test]
[zk: localhost:2181(CONNECTED) 9]
[zk: localhost:2181(CONNECTED) 10] delete /example
Node not empty: /example
[zk: localhost:2181(CONNECTED) 11]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110184-1-1.html 上篇帖子: ZooKeeper监控 下篇帖子: ZooKeeper典型应用(二) 生产者与消费者
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表