【分布式】ZooKeeper学习之一:安装及命令行使用

ZooKeeper学习之一:安装及命令行使用

一直都想着好好学一学分布式系统,但是这拖延症晚期也是没得治了,所以干脆强迫自己来写一个系列博客,从zk的安装使用、客户端调用、涉及到的分布式原理、选举过程及Paxos算法,一步步的讲清学习的历程。现在开始第一篇,zk的安装及命令行使用。

本文为ZooKeeper官方文档的自我理解版。

安装

笔者为mac环境,类似于Linux环境因此直接下载了3.4.10稳定版的安装包,解压后放在/Users/imac/zookeeper-3.4.10目录下。

修改conf目录下的zoo_sample.cfg为zoo.cfg,根据需求修改其中的参数,我将dataDir修改成自己的目录了。

接下来是启动zk,在zk根目录下执行:

bin/zkServer.sh start

可以看到:

【分布式】ZooKeeper学习之一:安装及命令行使用

那么zkserver已经run起来了,接下来是启动客户端,执行:

bin/zkCli.sh -server 127.0.0.1:2181

输出了一堆

【分布式】ZooKeeper学习之一:安装及命令行使用

至此一个单机版的zk已经跑起来并且可以直接输入命令行来对zk进行操作了,接下来进行zk的命令行使用。

命令行

help命令

输入help命令,会提示一堆命令,如下:

help
ZooKeeper -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

接下来就一个个的来讲讲。

ls、ls2

因为zk可以做namespace,所以是按照文件系统的树形结构,也就有了ls这样的操作。

[zk: 127.0.0.1:2181(CONNECTED) 8] ls /
[zookeeper] [zk: 127.0.0.1:2181(CONNECTED) 9] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x8
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

即展示路径下的信息,ls2为详细信息

get

获取路径下的信息,同ls2

[zk: 127.0.0.1:2181(CONNECTED) 12] get /

cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x9
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

create

创建一个路径,需要

[zk: 127.0.0.1:2181(CONNECTED) 11] create /test test_data
Created /test

set

设置路径的值

[zk: 127.0.0.1:2181(CONNECTED) 14] set /test a
cZxid = 0x9
ctime = Thu Sep 07 21:58:43 CST 2017
mZxid = 0xa
mtime = Thu Sep 07 22:05:27 CST 2017
pZxid = 0x9
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

delete

删除

[zk: 127.0.0.1:2181(CONNECTED) 15] delete /test

close、connect、quit

关闭连接,对于的是connect打开连接,quit是退出

history、redo

history可以查看历史命令记录,并且有编号;redo+编号就可以重写执行该命令

getAcl、setAcl

上一篇:JavaScript学习记录总结(八)——全选、反选


下一篇:Nginx 使用中文URL,中文目录路径