首页 > zookeeper > zookeeper的使用
2015
08-08

zookeeper的使用

首先在系统环境变量里添加ZK_HOME,与java配置环境变量一直,故此不再赘述,需要注意的是,配置完成之后要使用source命令读取profile中的内容,才能使环境变量的配置在当前终端(Terminal)中有效,要想保证任意terminal都可用,需要重新启动操作系统。

Source命令如下:
# source /etc/profile

重启命令:
# reboot

确保java环境可用和zookeeper配置完成后即可启动zookeeper:
在各个zkserver上启动zk
# sh zkServer.sh start

启动后见到类似以下信息说明启动成功
JMX enabled by default
Using config: /home/bigdata/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper … STARTED

关闭zookeeper:
# sh zkServer.sh stop

使用zookeeper之前简单了解一下zookeeper中存储的数据的特点,zookeeper存储的数据位于内存中,查询和修改速度很快,可以应对高并发、低延迟的场景。且每个节点均由一个键值对来表示,类似于java中的map,键表示的是节点的名字,值就是这个节点的值。与linux的文件目录类似,zookeeper有一个根节点的概念。根目录下默认有一个zookeeper节点。节点中的数据每操作一次,数据的版本号就更新一次。

使用zookeeper的客户端建立一个链接(也称之为一次会话)
# sh zkCli.sh –server zkserver1:2181

这时会进入到zookeeper的客户端,我们可以进行一些命令操作(zk的关键字是大小写敏感的

创建一个目录(节点)
create [-s] [-e] 节点 节点内容 权限
例如:
create /zktest 123

结果如下:
zookeeper的使用 - 光明宇宙站 - 1

注意:

-s参数表示是顺序节点(即节点后带有序列号) 不写表示为普通节点
-e 表示是临时节点,本次链接未断开期间数据一直都存在,链接断开后节点及节点上的内容丢失,不写表示为永久节点,链接断开后数据不丢失
权限可以不写,默认情况下不做任何权限控制
节点的名称也是大小写敏感的

查看目录结构:
ls 节点

例如:
ls /

结果如下:
zookeeper的使用 - 光明宇宙站 - 2

查看节点内容:
get 节点

例如:
get /zktest

结果如下:
zookeeper的使用 - 光明宇宙站 - 3

更新节点内容:
set 节点 内容 [版本]

例如:
set /zktest 456

结果如下:
zookeeper的使用 - 光明宇宙站 - 4

删除节点
delete 节点 [版本]

例如:
zookeeper的使用 - 光明宇宙站 - 5

注意:删除某个节点时,那个节点下不能有子节点,且zookeeper不支持递归删除。

最后编辑:
作者:小马哥
大数据技术学习及实践者~

留下一个回复

你的email不会被公开。