zookeeper的使用

zookeeper专栏
上一篇主目录 下一篇


【前言】
操作zookeeper集群有两种方式,cli客户端命令行窗口和javaAPI


1 cli客户端命令行窗口

进入zk的命令行客户端

(1) 直接连接本机的 ZooKeeper 服务器
zkCli.sh
(2) 连接其他的 ZooKeeper 服务器,在命令后面接一个参数-server
zkCli.sh -server hadoop02:2181
(3) 连接03,若03挂掉连接02
zkCli.sh -server hadoop02:2181,hadoop03:2181

查看帮助文档
进入命令行之后,键入 help 可以查看简易的命令帮助文档
在这里插入图片描述

#查看 znode 子节点内容
ls /
ls /ZooKeeper
#创建 znode 节点
create /zk “myData”
#获取 znode 数据
get /ZooKeeper
get /ZooKeeper/node1
#设置 znode 数据
set /zk “myData1”
#监听 znode 事件
ls /ZooKeeper watch ## 就对一个节点的子节点变化事件注册了监听
get /ZooKeeper watch ## 就对一个节点的数据内容变化事件注册了监听
#创建临时 znode 节点(-e是临时,默认是持久)
create -e /zk “myData”
#创建顺序 znode 节点(持久)
create -s /zk “myData”
#删除 znode 节点
delete /zk ## 只能删除没有子 znode 的 znode
rmr /zk ## 不管里头有多少 znode,统统删除

znode 数据信息字段解释(通过stat/get/ls2命令获取)

  • mydata 节点数据
    cZxid = 0x400000093 节点创建的时候的 zxid
    ctime = Fri Dec 02 16:41:50 PST 2016 节点创建的时间
    mZxid = 0x400000093 节点修改的时候的 zxid,与子节点的修改无关
    mtime = Fri Dec 02 16:41:50 PST 2016 节点的修改的时间
    pZxid = 0x400000093 和子节点的创建/删除对应的 zxid,和修改无关,和孙子节点无关
    cversion = 0 子节点的更新次数
    dataVersion = 0 节点数据的更新次数
    aclVersion = 0 节点(ACL)的更新次数
    ephemeralOwner = 0x0 如果该节点为 ephemeral 临时节点, ephemeralOwner 值表示与该节点绑定的 session id. 如果该节点不是 ephemeral 节点,ephemeralOwner 值为 0
    dataLength = 6 节点数据的字节数
    numChildren = 0 子节点个数,不包含孙子节点

2 Java API

create(path, data, flags): 创建一个 znode, path 是其路径,data 是存储在该 ZNode 上的数据, flags 常用的有: PERSISTEN, PERSISTENT_SEQUENTAIL, EPHEMERAL, EPHEMERAL_SEQUENTAIL

delete(path, version): 删除一个 ZNode,可以通过 version 删除指定的版本, 如果 version 是-1 的话,表示删除所有的版本

exists(path, watch): 判断指定 ZNode 是否存在,并设置是否 Watch 这个 ZNode。这里如果要 设置 Watcher 的话,Watcher 是在创建 ZooKeeper 实例时指定的,如果要设置特定的 Watcher 的话,可以调用另一个重载版本的 exists(path, watcher)。以下几个带 watch 参数的 API 也都 类似

getData(path, watch): 读取指定 ZNode 上的数据,并设置是否 watch 这个 ZNode

setData(path, watch): 更新指定 ZNode 的数据,并设置是否 Watch 这个 ZNode

getChildren(path, watch): 获取指定 ZNode 的所有子 ZNode 的名字,并设置是否 Watch 这个 ZNode

sync(path): 把所有在 sync 之前的更新操作都进行同步,达到每个请求都在半数以上的 ZooKeeper Server 上生效。path 参数目前没有用

setAcl(path, acl): 设置指定 ZNode 的 Acl 信息

getAcl(path): 获取指定 ZNode 的 Acl 信

使用方式代码详解

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值