Zookeeper运维指南:服务端与客户端常用命令详解

#作者:任少近

文章目录

  • 1 Zookeeper服务端常用命令
  • 2 Zookeeper客户端常用命令
    • 2.1Ls命令
    • 2.2创建节点create
    • 2.3Get命令
    • 2.4删除命令
    • 2.5修改命令

1 Zookeeper服务端常用命令

启动ZK服务:

bin/zkServer.sh start
# ./zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfgStarting zookeeper ... STARTED

查看ZK服务状态:

bin/zkServer.sh status
# ./zkServer,sh statusZooKeeper JMX enabled by defaultJsing config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfglient port found: 2181. Client address: ocalhost.Error contacting service. It is probably not running.

停止ZK服务

bin/zkServer.sh stop
# ./zkServer.sh stopZooKeeper JMX enabled by defaultUsing config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfgStopping zookeeper。。。STOPPED

重启ZK服务:

bin/zkServer.sh restart
# .zkServer.sh restart
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfg 
Stopping zookeeper …STOPPED
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.7.0/bin/../conf/zoo.cfg 
Starting zookeeper.. STARTED

2 Zookeeper客户端常用命令

登录zk:
启动客户端:./zkCli.sh -server ip:port(如果连接本地Zookeeper,ip:port可省略)

zkCli.sh -server 127.0.0.1:2181
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]

2.1Ls命令

在 ZooKeeper 命令行客户端中,ls 命令用于列出指定节点的子节点。以下是一些常见的参数以及它们的解释:

-s:以字母顺序排序子节点。默认情况下,子节点按照创建顺序排序。

-v:显示节点的统计信息,包括版本、数据长度等。

-R:递归地列出指定节点的所有子节点,包括子节点的子节点。

-w:在列出子节点后,监视指定节点的变化,类似于 get 命令中的监视模式。

-t:以最后修改时间(mtime)的顺序排序子节点。

-r:反向排序子节点,与 -s 参数相反。

新安装的Zookeeper根节点就一个zookeeper节点,查看指定节点、子节点信息。

[zk: ocalhost:2181(CONNECTED) 0] ls /
[zookeeper]
zk: localhost:2181(CONNECTED) 1] ls /zookeeper
[config, quota]
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper/config
[]
[zk: localhost:2181(CONNECTED) 3] ls /zookeeper/
config quota
[zk: localhost:2181(CONNECTED) 3] ls /zookeeper/quota
[]
[zk: localhost:2181(CONNECTED) 4] ls -w /zookeeper/
config 
quota

假设我们在 ZooKeeper 中已经创建了两个节点:/mobile1 和 /mobile2。下面我将通过不同的参数示例说明 ls 命令的用法:

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, mobile1, mobile2]

这会列出指定节点(根节点 /)的所有子节点,包括 zookeeper、mobile1 和 mobile2。

以字母顺序排序子节点:

[zk: localhost:2181(CONNECTED) 0] ls -s /
[mobile1, mobile2, zookeeper]

使用 -s 参数以字母顺序排序子节点,结果显示为 mobile1、mobile2 和 zookeeper。
显示节点的统计信息:

[zk: localhost:2181(CONNECTED) 0] ls -v /
zookeeper
cZxid = 0x100000005
ctime = Sun Aug 13 12:30:59 UTC 2023
mZxid = 0x100000005
mtime = Sun Aug 13 12:30:59 UTC 2023
pZxid = 0x100000004
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
mobile1
mobile2

使用 -v 参数显示节点的统计信息,包括每个子节点的版本、时间戳等信息。

递归地列出子节点:使用 -R 参数递归地列出所有子节点,包括子节点的子节点(如果有的话)。

[zk: localhost:2181(CONNECTED) 0] ls -R /
[zookeeper, mobile1, mobile2]
[/zookeeper/config, /zookeeper/quota]

以最后修改时间的顺序排序子节点:

[zk: localhost:2181(CONNECTED) 0] ls -t /
[zookeeper, mobile2, mobile1]

使用 -t 参数以最后修改时间的顺序排序子节点,结果显示为 zookeeper、mobile2 和 mobile1。

反向排序子节点:

[zk: localhost:2181(CONNECTED) 0] ls -r /
[zookeeper, mobile2, mobile1]

使用 -r 参数反向排序子节点,结果显示为 zookeeper、mobile2 和 mobile1。

2.2创建节点create

持久节点 (Persistent Node):创建一个持久节点,该节点会一直存在

[zk: localhost:2181(CONNECTED) 0] create /mobile 
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, mobile]

临时节点 (Ephemeral Node):创建一个临时节点,该节点在客户端会话结束后会被自动删除。
创建临时节点 mobile:

[zk: localhost:2181(CONNECTED) 0] create -e /mobile

顺序节点 (Sequential Node):创建一个顺序节点,节点名称会自动带有一个递增的序号,有助于排序。

创建顺序节点 mobile:

[zk: localhost:2181(CONNECTED) 0] create -s /mobile
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, mobile0000000001]

临时顺序节点 (Ephemeral Sequential Node):创建一个临时顺序节点,结合了临时和顺序节点的特性。

创建临时顺序节点 mobile:

[zk: localhost:2181(CONNECTED) 0] create -e -s /mobile
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, mobile0000000001]

创建mobile方式,在 ZooKeeper 命令行客户端中,不支持create一次性创建多个节点,每个 create 命令只能创建一个节点. 可以在一行上使用分号分隔多个命令来批量创建节点。

[zk: localhost:2181(CONNECTED) 0] create /mobile1; create /mobile2
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, mobile1, mobile2]

2.3Get命令

查看创建的节点

[zk: localhost:2181(CONNECTED) 0] create /mobile "mobile is NO.1"
[zk: localhost:2181(CONNECTED) 1] get /mobile
mobile is NO.1
cZxid = 0x100000001
ctime = Sun Aug 13 10:30:59 UTC 2023
mZxid = 0x100000001
mtime = Sun Aug 13 10:30:59 UTC 2023
pZxid = 0x100000001
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0

get获取节点的值并监视变化:
get /mobile watch 命令监视节点值的变化,在节点值被更改后,会收到通知并看到新的节点值和元数据信息。

[zk: localhost:2181(CONNECTED) 0] create /mobile "mobile is NO.1"
[zk: localhost:2181(CONNECTED) 0] get /mobile watch
mobile is NO.1
cZxid = 0x100000001
ctime = Sun Aug 13 11:31:50 UTC 2023
mZxid = 0x100000001
mtime = Sun Aug 13 11:31:50 UTC 2023
pZxid = 0x100000001
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 13
numChildren = 0
Watching ... (for any changes)

在第二个会话中执行 set /mobile “mobile is NO.NO.1”:

[zk: localhost:2181(CONNECTED) 0] set /mobile "mobile is NO.NO.1"
Mobile is NO.NO.1
cZxid = 0x100000002
ctime = Sun Aug 13 11:35:40 UTC 2023
mZxid = 0x100000002
mtime = Sun Aug 13 11:35:40 UTC 2023
pZxid = 0x100000002
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 15
numChildren = 0

2.4删除命令

mobile 节点
delete命令

[zk: localhost:2181(CONNECTED) 7] delete /mobile

Deleteall,
删除某个包含子节点的节点:deleteall 节点path(正常情况下,如果某个节点下有子节点,delete是不能删除的)

[zk: localhost:2181(CONNECTED) 7] deleteall /mobile

2.5修改命令

set命令:修改节点内容
命令格式:set [-s] [-v version] path data
-s:更新节点数据并显示节点状态信息
-v 指定数据版本号,如果指定的数据版本号和数据当前版本号不一致,则更新失败

[zk: localhost:2181(CONNECTED) 36] set /mobile/e_node1 "set data1"
[zk: localhost:2181(CONNECTED) 37] set -s /mobile/e_node1 "set data2"
cZxid = 0x6c
ctime = Sun Aug 13 13:36:41 UTC 2023
mZxid = 0x80
mtime = Sun Aug 13 13:36:41 UTC 2023
pZxid = 0x6c
cversion = 0
dataVersion = 6
aclVersion = 0
ephemeralOwner = 0x100002513c80001
dataLength = 9
numChildren = 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42210.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS宏开发手册——JSA语法练习

目录 系列文章3、JSA语法练习3.1、运算练习3.2、比较练习3.3、if else练习3.4、for 练习3.5、字符串、数组方法练习3.6、语义转编程练习题 系列文章 使用、工程、模块介绍 JSA语法 JSA语法练习题 第四篇EXCEL常用API,持续更新中… 3、JSA语法练习 3.1…

ENSP学习day11

NAT地址转换(二)NAPT与easy ip 一:NAPT是Network Address Port Translation的缩写,也称为PAT(Port Address Translation)。NAPT是一种网络转换技术,用于在私有网络和公共网络之间进行地址转换以…

当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系

《当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系》 引言:一场OOM引发的血案 某个月黑风高的夜晚,监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现:Kafka集群、Gateway、Discovery服…

Web纯前端实现在线打开编辑保存PPT幻灯片

很多项目中有时会需要在线打开PPT并编辑保存到服务器。猿大师办公助手可以完美调用本地office在线打开ppt文件,跟本地打开效果一样。还可以在线打开word、excel、pdf等文件,支持本机OFFICE完整嵌入模式,本机OFFICE所有功能基本都可以在网页上…

java版嘎嘎快充玉阳软件互联互通中电联云快充协议充电桩铁塔协议汽车单车一体充电系统源码uniapp

演示: 微信小程序:嘎嘎快充 http://server.s34.cn:1888/ 系统特色: 多商户、汽车单车一体、互联互通、移动管理端(开发中) 另外有PHP版源码:小程序搜索 河南玉阳软件 成熟线上运营中。可定制代理分销分账…

【Linux加餐-验证UDP:TCP】-windows作为client访问Linux

一、验证UDP-windows作为client访问Linux UDP client样例代码 #include <iostream> #include <cstdio> #include <thread> #include <string> #include <cstdlib> #include <WinSock2.h> #include <Windows.h>#pragma warning(dis…

linux input子系统深度剖析

input 就是输入的意思&#xff0c;因此 input 子系统就是管理输入的子系统&#xff0c;和 pinctrl 、 gpio 子系统 一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备&#xff0c;不同的输入设备…

leetcode40-组合总和II

leetcode 40 思路 在做本题之前可以参考之前的文章&#xff1a;组合总和和组合总和III 本题的关键点是&#xff1a;每个元素只能使用一次&#xff0c;另外本题给的数组是无序的&#xff0c;并且元素之间可能存在重复项&#xff0c;举个例子&#xff0c;candidates [1,2,1,1…

CentOS 7 源码安装libjsoncpp-1.9.5库

安装依赖工具 sudo yum install cmake make gcc cmake 需要升级至 3.8.0 以上可参考&#xff1a;CentOS安装CMakegcc 需要升级至9.0 以上可参考&#xff1a;CentOS 7升级gcc版本 下载源码 wget https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/1.9.5.…

本地部署Stable Diffusion生成爆火的AI图片

直接上代码 Mapping("/send") Post public Object send(Body String promptBody) { JSONObject postSend new JSONObject(); System.out.println(promptBody); JSONObject body JSONObject.parseObject(promptBody); List<S…

知识就是力量——物联网应用技术

基础知识篇 一、常用电子元器件1——USB Type C 接口引脚详解特点接口定义作用主从设备关于6P引脚的简介 2——常用通信芯片CH343P概述特点引脚定义 CH340概述特点封装 3——蜂鸣器概述类型驱动电路原文链接 二、常用封装介绍贴片电阻电容封装介绍封装尺寸与功率关系&#xff1…

.Net SSO 单点登录方式

SSO单点登录目的 之前一般来讲系统简单&#xff0c;登录后 本地 cookie 加服务器 session 存储用户身份信息&#xff0c;以此为依据来判断用户再次登录时免验证 但随着互联网发展&#xff0c;很多应用 部署在不同的服务器上&#xff0c;而用户体系是一套&#xff0c;那么按照原…

MyBatis-Flex、MyBatis-Plus 与 Fluent-Mybatis 的比较分析

MyBatis-Flex、MyBatis-Plus 与 Fluent-Mybatis 的比较分析 在日常开发中&#xff0c;很多项目会选择 MyBatis 作为 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;而为了减少样板代码和提升开发效率&#xff0c;各种扩展库层出不穷。其中&#xff0c;MyBatis-Flex…

LVS NAT模式实现三台RS的轮询访问

节点规划: 配置RS&#xff1a; RS1-RS3的网关配置均为 192.168.163.8 配置RS1&#xff1a; [rootlocalhost ~]# hostnamectl hostname rs1 [rootlocalhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.163.7/24 ipv4.gateway 192.168.163.8 conne…

软考中级-软件设计师 23种设计模式(内含详细解析)

23种设计模式 &#x1f3af; 创建型设计模式&#x1f4cc; 抽象工厂&#xff08;Abstract Factory&#xff09; 设计模式&#x1f4cc; 工厂方法&#xff08;Factory Method&#xff09;设计模式&#x1f4cc; 单例&#xff08;Singleton&#xff09;设计模式&#x1f4cc; 生成…

子数组 之 logTrick算法,求解或,与,LCM,GCD

文章目录 gcd的问题最大公约数 求解子数组的&,|,lcm,gcd的最值or计数问题&#xff0c;如果采用暴力的做法&#xff0c;那么时间复杂度会来到o(n^2),其实在求解的过程中&#xff0c;会出现很多的结果不变的情况&#xff0c;所以我们就可以提前结束 存在一定的单调性&#x…

密码学——知识问答

目录 1、阐述公开密钥算法的定义&#xff0c;结合RSA算法说明公钥密码的基本要求。 说明公钥与私钥两种密码学并举例与其应用 1. 公钥密码学&#xff08;非对称加密&#xff09;&#xff1a; 2. 私钥密码学&#xff08;对称加密&#xff09;&#xff1a; 对比公钥与私钥密码…

MySQL 表连接(内连接与外连接)

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 1、表连接的核心概念 1.1 为什么需要表连接&#xff1f; 2、内连接&a…

CI/CD(六) helm部署ingress-nginx(阿里云)

零、修改iptable为ipvs&#xff08;可选&#xff09; 修改 kube-proxy 配置&#xff1a; kubectl edit cm kube-proxy -n kube-system # 将 mode 字段改为 "ipvs" 重启 kube-proxy&#xff1a; kubectl delete pod -l k8s-appkube-proxy -n kube-system 验证 IPVS …

Git 之配置ssh

1、打开 Git Bash 终端 2、设置用户名 git config --global user.name tom3、生成公钥 ssh-keygen -t rsa4、查看公钥 cat ~/.ssh/id_rsa.pub5、将查看到的公钥添加到不同Git平台 6、验证ssh远程连接git仓库 ssh -T gitgitee.com ssh -T gitcodeup.aliyun.com