阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ZooKeeper数据组织及命令行的基本命令

415次阅读
没有评论

共计 3190 个字符,预计需要花费 8 分钟才能阅读完成。

ZooKeeper 命令行客户端

启动命令行

ZooKeeper 的命令行客户端在 bin 目录下的 zkCli.sh
使用下面的命令启动 zkCli

./zkCli.sh -server amaster:2181

一般来说,这样可以成功连接到 ZooKeeper 集群。但是如果连接的节点 amaster 挂掉了那么就没法连接成功。要想保证连接成功,可以多填上一些服务器的地址。可以使用下面的命令

zkCli.sh -server amaster:2181,anode1:2181,anode2:2181

这样的话只要连接成功一个服务器即可。

ZooKeeper 中的数据组织

ZooKeeper 中的数据被组织成了一棵树。每一个节点称作一个 znode,每一个 znode 包含下面的部分。

  • stat. 此为状态信息, 描述该 znode 的版本, 权限等信息
  • data 与该 znode 关联的数据.
  • children. 该 znode 下的子节点.

znode 之间具有父子关系。父子关系可以通过路径来表达,类似于文件系统。根节点是/

使用路径来创建或标识一个节点。每一个节点都可以保存数据。

zkCli.sh 的基本命令

1. ls 命令

ls 用于列出某个节点下的子节点。

示例代码

ls /

2. create 命令

create 用于创建一个节点。
语法是create [-s] [-e] path data acl

  • path 用于指定节点的路径
  • data 指定需要存放的数据(状态信息)

示例代码:

create /app1 "this is application1 servers parent"

3. get 命令

get 用于取出指定路径下存放的数据(stat)。语法是get path [watch]

示例代码:

get /app1

执行结果:

this is application1 servers parent
cZxid = 0x100000004
ctime = Sat Jan 28 21:04:59 CST 2017
mZxid = 0x100000004
mtime = Sat Jan 28 21:04:59 CST 2017
pZxid = 0x100000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 35
numChildren = 0

可以看出 ZooKeeper 使用了一系列数据结构来管理数据。

  • 第一行是我们存放的数据
  • cZxid 节点创建时的 zxid
  • ctime 节点创建时间戳
  • mzxid 节点最新一次更新发生时的 zxid.
  • mtime 节点最新一次更新发生时的时间戳.
  • dataVersion 节点数据的更新次数.
  • cversion 其子节点的更新次数.
  • aclVersion 节点 ACL(授权信息)的更新次数.
  • ephemeralOwner 如果该节点为 ephemeral 节点, ephemeralOwner 值表示与该节点绑定的 session id. 如果该节点不是 ephemeral 节点, ephemeralOwner 值为 0. 至于什么是 ephemeral 节点, 请看后面的讲述.
  • dataLength 节点数据的字节数.
  • numChildren 子节点个数.

zxid

znode 节点的状态信息中包含 czxid 和 mzxid, 那么什么是 zxid 呢?
ZooKeeper 状态的每一次改变, 都对应着一个递增的 Transaction id, 该 id 称为 zxid. 由于 zxid 的递增性质, 如果 zxid1 小于 zxid2, 那么 zxid1 肯定先于 zxid2 发生. 创建任意节点, 或者更新任意节点的数据, 或者删除任意节点, 都会导致 Zookeeper 状态发生改变, 从而导致 zxid 的值增加.

session

在 client 和 server 通信之前, 首先需要建立连接, 该连接称为 session. 连接建立后, 如果发生连接超时, 授权失败, 或者显式关闭连接, 连接便处于 CLOSED 状态, 此时 session 结束.

4. get 的监听

get 命令可以注册一个监听,当 get 的 znode 的数据发生变化时可以收到通知。需要注意的是这个通知 只生效一次

示例代码:

get /app1 watch

在其他客户端修改 app1 的数据

set /app1 通知

则会自动收到通知:

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/app1

接收到事件后客户端可以自行获取节点的内容。

与此类似的还有ls 的监听,它们非常类似,这里不再赘述。

5. set 命令

set 命令用于更新一个节点的数据。语法为set path data [version]

示例代码:

set /app1 啊哈哈哈 222

ZooKeeper 节点类型

persistent persistent 节点不和特定的 session 绑定, 不会随着创建该节点的 session 的结束而消失, 而是一直存在, 除非该节点被显式删除.

ephemeral. ephemeral 节点是临时性的, 如果创建该节点的 session 结束了, 该节点就会被自动删除. ephemeral 节点不能拥有子节点. 虽然 ephemeral 节点与创建它的 session 绑定, 但只要该该节点没有被删除, 其他 session 就可以读写该节点中关联的数据. 使用 - e 参数指定创建 ephemeral 节点.

示例代码:

create -e /appe 888888

sequence. 严格的说, sequence 并非节点类型中的一种. sequence 节点既可以是 ephemeral 的, 也可以是 persistent 的. 创建 sequence 节点时, ZooKeeper server 会在指定的节点名称后加上一个数字序列, 该数字序列是递增的. 因此可以多次创建相同的 sequence 节点, 而得到不同的节点. 使用 - s 参数指定创建 sequence 节点.

示例代码:

[zk: amaster:2181(CONNECTED) 12] create -s /app1/aa 666666
Created /app1/aa0000000000
[zk: amaster:2181(CONNECTED) 13] create -s /app1/aa 666666
Created /app1/aa0000000001
[zk: amaster:2181(CONNECTED) 14] create -s /app1/aa 666666
Created /app1/aa0000000002

在 CentOS7 上安装 Zookeeper-3.4.9 服务 http://www.linuxidc.com/Linux/2016-09/135052.htm

ZooKeeper 官方文档翻译——ZooKeeper Overview 3.4.6  http://www.linuxidc.com/Linux/2016-12/138025.htm 

CentOS 下 ZooKeeper 3.4.8 集群环境搭建 http://www.linuxidc.com/Linux/2016-12/137958.htm

CentOS 7 下 Zookeeper 集群安装 http://www.linuxidc.com/Linux/2017-01/139733.htm

ZooKeeper 学习总结  http://www.linuxidc.com/Linux/2016-07/133179.htm

Linux 下安装 Zookeeper 集群 http://www.linuxidc.com/Linux/2017-01/139545.htm

Zookeeper3.4.6 的安装 http://www.linuxidc.com/Linux/2015-05/117697.htm

CentOS 7 下安装 Zookeeper 单机版  http://www.linuxidc.com/Linux/2015-05/117697.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/140051.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3190字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7808261
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...