当前位置: 首页 > 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.xdnf.cn/news/1071883.html

相关文章:

  • 信号处理学习——文献精读与code复现之TFN——嵌入时频变换的可解释神经网络(上)
  • 设计模式之抽象工厂模式
  • ​​Git提交代码Commit消息企业级规范
  • mongodb生产备份工具PBM
  • 学习设计模式《十五》——模板方法模式
  • SpringBoot 防刷 重复提交问题 重复点击问题 注解 RequestParam RequestBody
  • clion与keil分别配置项目宏定义
  • Python打卡:Day39
  • MySQL 连接指定端口后,为什么实际仍是 3306?
  • 什么是故障注入测试
  • 智能助手(利用GPT搭建智能系统)
  • 性能测试常见指标与瓶颈分析方法
  • 利用python实现NBA数据可视化
  • Python Selenium 滚动到特定元素
  • 10【认识文件系统】
  • 视觉疲劳检测如何优化智能驾驶的险情管理
  • 【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?
  • 【k近邻】 K-Nearest Neighbors算法原理及流程
  • 《高等数学》(同济大学·第7版)第九章 多元函数微分法及其应用第五节多元函数微分学的几何应用
  • 桌面小屏幕实战课程:DesktopScreen 13 HTTP SERVER
  • [Python]-基础篇1- 从零开始的Python入门指南
  • Python打卡:Day38
  • .NetCore+Vue快速生产框架开发详细方案
  • 深入解析RNN模型:应用、结构与构建实战
  • C++ 第三阶段 并发与异步 - 第二节:异步任务(std::async)
  • 深度拆解Deep Research系统架构与路线图
  • MySQL在C中常用的API接口
  • Linux信号机制:从入门到精通
  • Java项目:基于SSM框架实现的宠物综合服务平台管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
  • 【记录】Ubuntu|Ubuntu服务器挂载新的硬盘的流程(开机自动挂载)