当前位置: 首页 > news >正文

zookeeper Curator(1):认识zookeeper和操作命令

文章目录

  • zookeeper 概念
  • zookeeper 的安装
    • linux 安装zookeeper
      • 下载ZooKeeper
      • 解压文件
      • 配置环境变量
      • 创建配置文件
      • 创建数据目录
      • 启动ZooKeeper
      • 停止ZooKeeper
      • 集群模式配置(可选)
    • windows 安装zookeeper
  • zookeeper 数据模型
  • zookeeper 服务端的常用命令
  • zookeeper 客户端常用命令
    • 基础连接与会话命令
    • 节点操作命令
    • 节点监控命令
    • 集群管理命令
    • 高级查询命令
    • 事务操作命令
    • 四字运维命令(需通过telnet或nc执行)

zookeeper 概念

  • zookeeper 是Apache Hadoop 项目下的一个子项目,是一个树形目录服务。
  • zookeeper 翻译过来就是 动物园管理员,它是用来管理Hadoop(大象),Hive(蜜蜂),Pig(小猪)的管理员。简称ZK。
  • zookeeper 是一个分布式的,开源的分布式应用程序的协调服务。

zookeeper 提供的主要功能包括:

  • 配置管理

在这里插入图片描述

  • 分布式锁

在这里插入图片描述

  • 集群管理
    在这里插入图片描述

zookeeper 的安装

linux 安装zookeeper

下载ZooKeeper

访问Apache ZooKeeper官网的下载页面,选择稳定版本(如3.7.1)。下载压缩包(如apache-zookeeper-3.7.1-bin.tar.gz)。

wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

解压文件

使用以下命令解压下载的压缩包,并移动到指定目录(如/opt/zookeeper):

tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
sudo mv apache-zookeeper-3.7.1-bin /opt/zookeeper

配置环境变量

编辑~/.bashrc~/.zshrc文件,添加以下内容:

export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

执行命令使配置生效:

source ~/.bashrc

创建配置文件

复制默认配置文件模板并修改:

cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg,设置数据目录和端口(默认2181):

dataDir=/opt/zookeeper/data
clientPort=2181

创建数据目录

创建配置文件中指定的数据目录:

mkdir -p /opt/zookeeper/data

启动ZooKeeper

使用以下命令启动服务:

zkServer.sh start

验证服务状态:

zkServer.sh status

停止ZooKeeper

需要停止服务时,运行:

zkServer.sh stop

集群模式配置(可选)

如需搭建集群,需在每台服务器的zoo.cfg中添加如下配置,并创建myid文件:

server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888

在每台服务器的dataDir目录中创建myid文件,内容为对应的服务器ID(如1、2、3)。

windows 安装zookeeper

安装请见:dubbo(2):zookeeper和dubbo-admin的安装
注意: dubbo-admin是用于对zookeeper监听和管理的,在此处不需要安装,故也不需要nodejs环境。

zookeeper 数据模型

  • zookeeper 是一个树形目录服务,其数据模型和unix的文件系统很类似,拥有一个层次化结构。

  • 这里面的每一个节点被称为: ZNode,每个节点上都会保存自己的数据和节点信息。

  • 节点可以拥有子节点,同时也允许少量数据(1MB)存储在该节点之下。

    节点可以分为四大类:

  • PERSISTENT 持久化节点

  • EPHEMERAL 临时节点 : -e

  • PERSISTENT_SEQUENTIAL 持久化顺序节点 : -s

  • EPHEMERAL_SEQUENTIAL 临时化顺序节点:-es
    在这里插入图片描述
    在这里插入图片描述

zookeeper 服务端的常用命令

  • 启动zookeeper 服务
./zkServer.sh start
  • 查看zookeeper 服务状态
./zkServer.sh status
  • 停止zookeeper 服务状态
./zkServer.sh stop
  • 重启zookeeper 服务
./zkServer.sh restart

zookeeper 客户端常用命令

基础连接与会话命令

连接ZooKeeper服务器:

zkCli.sh -server <host:port>

创建会话后,可使用以下命令查看帮助:

help

节点操作命令

tips: 创建时,没有设置值,默认时null,需要注意和curator 区别开。
在这里插入图片描述

创建持久节点:

create /path "data"

创建临时节点(会话结束自动删除):

create -e /ephemeral "data"

创建顺序节点(自动追加序号):

# 不设置值
create -s /sequential
# 设置节点值data
create -s /sequential "data"

获取节点数据:

get /path

设置节点数据:

set /path "new_data"

删除节点(需无子节点):

delete /path

递归删除节点(含子节点):

deleteall /path

节点监控命令

注册数据变更监听:

get -w /path

注册子节点变更监听:

ls -w /path

集群管理命令

查看集群状态:

stat /path

查看节点ACL权限:

getAcl /path

设置节点ACL权限:

setAcl /path scheme:id:permissions

高级查询命令

列出子节点:

ls /path

递归列出所有子节点:

ls -R /path

查看节点统计信息:

stat /path

事务操作命令

开启事务:

multi

提交事务:

commit

四字运维命令(需通过telnet或nc执行)

查看服务器状态:

echo stat | nc <host> 2181

查看连接详情:

echo cons | nc <host> 2181

查看服务器角色:

echo srvr | nc <host> 2181

强制重新加载配置:

echo redo | nc <host> 2181

注意:四字命令需在zoo.cfg中配置4lw.commands.whitelist=*开启全部权限。生产环境建议按需配置白名单。

http://www.lryc.cn/news/576333.html

相关文章:

  • [论文阅读] 软件工程 | 微前端在电商领域的实践:一项案例研究的深度解析
  • React 第六十六节Router中 StaticRouter使用详解及注意事项
  • 前端React和Vue框架的区别
  • 深入理解C#委托操作:添加、移除与调用全解析
  • 网络 : 传输层【UDP协议】
  • Linux-读者写者问题
  • STM32F103C8T6参数说明
  • Android4的InputReader
  • 一款支持多日志器、多级别、多落地方式的同异步日志系统
  • 搭建Flink分布式集群
  • 零知开源——基于STM32F407VET6零知增强板的四路独立计时器
  • 配置阿里云OSS实现https访问
  • 解决flash-attn安装报错的问题
  • Java-对象的字符串表示
  • Day45 Tensorboard使用介绍
  • 计算机操作系统(十七)内存管理
  • 关于上位机的热更新
  • 暑假复习篇之运算与逻辑
  • C#数据流处理:深入解析System.IO.Pipelines的奥秘
  • 数据结构与算法 --- 双向链表
  • 鸿蒙 Scroll 组件深度解析:丝滑滚动交互全场景实现
  • Python 数据分析与可视化 Day 10 - 数据合并与连接
  • 华为云Flexus+DeepSeek征文|基于Dify构建文本/图像/视频生成工作流
  • C++虚函数详解:动态绑定机制深度解析
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • 如何在FastAPI中打造坚不可摧的Web安全防线?
  • 【C++】简单学——类和对象(下)
  • 从 AJAX 到 axios:前端与服务器通信实战指南
  • 户外人像要怎么拍 ?
  • 翻译服务器