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
相关文章:
Zookeeper运维指南:服务端与客户端常用命令详解
#作者:任少近 文章目录 1 Zookeeper服务端常用命令2 Zookeeper客户端常用命令2.1Ls命令2.2创建节点create2.3Get命令2.4删除命令2.5修改命令 1 Zookeeper服务端常用命令 启动ZK服务: bin/zkServer.sh start # ./zkServer.sh startZooKeeper JMX enabled by defau…...
linux scp复制多层级文件夹到另一服务器免密及脚本配置
文章目录 生成 SSH 密钥对将公钥复制到目标服务器验证免密登录scp 多级文件夹复制脚本 生成 SSH 密钥对 在本地机器上,使用 ssh-keygen 命令生成 SSH 密钥对。打开终端并执行以下命令: ssh-keygen -t rsa 按提示连续按回车键,默认会在 ~/.ss…...
模型压缩与迁移:基于蒸馏技术的实战教程
1.前言 模型蒸馏(Model Distillation),又称为知识蒸馏(Knowledge Distillation),是一种将大型、复杂的模型(通常称为教师模型,Teacher Model)的知识转移到小型、简单模型…...
XSS通关技巧
目录 第一关: 第二关: 第三关: 第四关: 第五关: 第六关: 第七关: 第八关: 第九关: 第十关: 第十一关: 第十二关: 第十三关:…...
el-tree树多选,将选中的树对象中某个字段值改为true,并过滤出所有为true的对象,组成新的数组
功能实现: el-tree树多选,将选中的树对象中某个字段值改为true,并过滤出所有为true的对象,组成新的数组提交给后端 <template><div><!-- 树形菜单 --><el-tree:data"stageList"show-checkboxdefault-expand-…...
大文件版本管理git-lfs
1. 安装 Git Large File Storage (LFS) 是一个 开源的 Git 扩展,用于替换 Git 仓库中的大文件,用指针文件替代实际的大文件,可以在保持仓库轻量级的同时,有效地管理大型文件。 如果install提示失败,多试几次…...
Android RemoteViews:跨进程 UI 更新的奥秘与实践
目录 一、RemoteViews 的舞台:使用场景 (一)通知栏:动态交互的窗口 (二)桌面小部件:桌面上的动态名片 二、RemoteViews 的本质:定义与架构 (一)什么是 RemoteViews? (二)架构设计:层次分明的协作 (三)操作限制:能力边界在哪里? 三、RemoteViews 的引擎…...
es 3期 第27节-运用Script脚本实现复杂需求
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性ÿ…...
玩转python: 掌握Python常用库之数据分析pandas
pandas是Python中最强大的数据处理和分析库之一,它提供了高效、灵活且易于使用的数据结构,使数据清洗、转换和分析变得简单直观。 1、pandas库简介 pandas由Wes McKinney于2008年开发,名称来源于"panel data"(面板数据…...
融合YOLO11与行为树的人机协作智能框架:动态工效学优化与自适应安全决策
人工智能技术要真正发挥其价值,必须与生产生活深度融合,为产业发展和人类生活带来实际效益。近年来,基于深度学习的机器视觉技术在工业自动化领域取得了显著进展,其中YOLO(You Only Look Once)算法作为一种…...
Postgresql源码(142)子查询提升pull_up_sublinks
1 案例 drop table t_fun01; create table t_fun01 (image_id numeric primary key, content_id varchar(50), file_code varchar(20)); create index idx3 on t_fun01(content_id); create index idx4 on t_fun01(file_code); insert into t_fun01 select t.i, t.i%10, t.i%1…...
通过 ECNWP 洋流、海浪可视化开发的方法和架构
第一篇:ECNWP 洋流、海浪可视化开发方法 1. 数据获取与预处理 ECNWP(Eastern Central North Pacific)区域的洋流和海浪数据通常来源于 NOAA、EMC 等权威机构。数据包括流速、流向、波高、波向、周期等。 代码示例:数据下载与预处理 import pandas as pd import numpy as…...
如何 编译 px4
DeepSeek-R1满血版 回答完成 深度思考完成 用时27秒,搜索全网29篇资料 以下是详细的PX4固件编译教程,综合多平台及常见问题解决方案: 一、环境准备 系统要求 Ubuntu 20.04/22.04(推荐)或 MacOS 12 Windo…...
23种设计模式-桥接(Bridge)设计模式
桥接设计模式 🚩什么是桥接设计模式?🚩桥接设计模式的特点🚩桥接设计模式的结构🚩桥接设计模式的优缺点🚩桥接设计模式的Java实现🚩代码总结🚩总结 🚩什么是桥接设计模式…...
【黑皮书】 AVL树
目录 前言 一 AVL树的介绍 二 单旋转 二 双旋转 总结 前言 AVL树的学习 一 AVL树的介绍 AVL树是带有平衡条件的二叉查找树,这个平衡条件要持续保持,而且必须保证树的深度为O(log(N))最简单的想法就是要求左右子树具有相同的高度 一棵AVL树是…...
【机器学习】什么是决策树?
什么是决策树? 决策树是一种用于分类和回归问题的模型。它通过一系列的“决策”将数据逐步分裂,最终得出预测结果。可以把它看作是一个“树”,每个节点表示一个特征的判断,而每个分支代表了可能的判断结果,最终的叶子…...
【商城实战(74)】数据采集与整理,夯实电商运营基石
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
使用独立服务器的最佳方式指南
在寻找合适的主机服务方案时,可以考虑独立服务器,因为它拥有管理员权限以及更高的性能配置。在本指南中,我们将介绍独立服务器的多种用途,并分析为什么选择独立服务器可能是处理高性能、资源密集型应用和大流量网站的最佳方案。 搭…...
视频格式转换:畅享多平台无缝视频体验
视频格式转换:畅享多平台无缝视频体验 视频已成为我们日常生活中不可或缺的一部分,不论是工作中展示方案的演示,还是生活里记录美好瞬间的短片,视频的存在无处不在。然而,面对各类设备、平台对视频格式的不同要求&…...
【HTML 基础教程】HTML 属性
HTML 属性 属性是 HTML 元素提供的附加信息。 属性通常出现在 HTML 标签的开始标签中,用于定义元素的行为、样式、内容或其他特性。 属性总是以 name"value" 的形式写在标签内,name 是属性的名称,value 是属性的值。 HTML 属性 …...
爬虫问题整理(2025.3.27)
此时此刻,困扰我一天的两个问题终于得到了解决,在此分享给大家。 问题1:使用anaconda prompt无法进行pip安装,这里只是一个示例,实际安装任何模块都会出现类似报错。 解决办法:关掉梯子......没错…...
短信验证码安全需求设计
背景: 近期发现部分系统再短信充值频繁,发现存在恶意消耗短信额度现象,数据库表排查,发现大量非合法用户非法调用短信接口API导致额度耗尽。由于系统当初设计存在安全缺陷,故被不法分子进行利用,造成损失。…...
若依专题——基础应用篇
若依搭建 搭建后端项目 ① Git 克隆并初始化项目 ② MySQL 导入与配置 ③ 启动 Redis 搭建后端项目注意事项? ① 项目初始化慢,执行clean、package ② MySQL导入后,修改application-druid.yml ③ Redis有密码,修改ap…...
给AI装“记忆U盘“:LangChain记忆持久化入门指南
🧠 什么是记忆持久化? 想象AI对话就像和朋友聊天: 普通模式:每次重启都忘记之前聊过什么持久化模式:给AI配了个"记忆U盘",聊天记录永不丢失 核心组件三件套 #mermaid-svg-ORm8cbBXsaRy2sZ…...
AI for CFD入门指南(传承版)
AI for CFD入门指南 前言适用对象核心目标基础准备传承机制 AI for CFDLibtorch的介绍与使用方法PytorchAutogluon MakefileVscodeOpenFOAMParaviewGambit 前言 适用对象 新加入课题组的硕士/博士研究生对AICFD交叉领域感兴趣的本科生实习生需要快速上手组内研究工具的合作研…...
DeepSeek+RAG局域网部署
已经有很多平台集成RAG模式,dify,cherrystudio等,这里通过AI辅助,用DS的API实现一个简单的RAG部署。框架主要技术栈是Chroma,langchain,streamlit,答案流式输出,并且对答案加上索引。支持doc,docx,pdf,txt。…...
JavaScript快速入门之函数
引言 总所周知,JavaScript是一个很随便的语言,因此,在学习它的语法的时候,我是和Java语法对比着学的,可能会有些绕 函数 方法:对象(属性,方法) 函数:放在对…...
Java中synchronized 和 Lock
1. synchronized 关键字 工作原理 对象锁:在Java中,每个对象都有一个与之关联的监视器锁(monitor lock)。当一个线程尝试进入由 synchronized 保护的代码块或方法时,它必须首先获取该对象的监视器锁。如果锁已经被其…...
Linux系统-ls命令
一、ls命令的定义 Linux ls命令(英文全拼:list directory contents)用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 二、ls命令的语法 ls [选项] [目录或文件名] ls [-alrtAFR] [name...] 三、参数[选项…...
个人学习编程(3-24) 数据结构
括号的匹配: if((s[i]) && now() || (s[i]] && now[)){ #include <bits/stdc.h>using namespace std;int main() {char s[300];scanf("%s",&s);int i;int len strlen(s);stack <char> st;for (i 0; i < len; i){if(…...
