zookeeper常用命令

zookeeper常用命令

  • [1. 下载安装](#1. 下载安装)
  • [2. 配置说明](#2. 配置说明)
    • [2.1 配置](#2.1 配置)
  • [3. zookeeper的常见命令](#3. zookeeper的常见命令)
    • [3.1 server端启动停止等命令](#3.1 server端启动停止等命令)
    • [3.2 客户端连接等命令](#3.2 客户端连接等命令)
    • [3.3 客户端简单常用命令](#3.3 客户端简单常用命令)
      • [3.3.1 查看目录(查看数据结构)](#3.3.1 查看目录(查看数据结构))
      • [3.3.2 删除目录](#3.3.2 删除目录)
      • [3.3.3 创建目录](#3.3.3 创建目录)
      • [3.3.4 创建目录并写入值 + 查看节点值](#3.3.4 创建目录并写入值 + 查看节点值)
      • [3.3.5 设置节点值](#3.3.5 设置节点值)
      • [3.3.6 查询节点](#3.3.6 查询节点)
        • [3.3.6.1 普通查询](#3.3.6.1 普通查询)
          • [3.3.6.1.1 普通简单查询](#3.3.6.1.1 普通简单查询)
          • [3.3.6.1.2 普通递归查询](#3.3.6.1.2 普通递归查询)
        • [3.3.6.2 查询节点的详细信息](#3.3.6.2 查询节点的详细信息)
        • [3.3.6.3 查询节点的详细信息2](#3.3.6.3 查询节点的详细信息2)
      • [3.3.7 创建持久序号节点](#3.3.7 创建持久序号节点)
      • [3.3.8 创建临时节点](#3.3.8 创建临时节点)
    • [3.4 权限设置------创建权限节点](#3.4 权限设置——创建权限节点)
      • [3.4.1 步骤](#3.4.1 步骤)
      • [3.4.2 解释](#3.4.2 解释)
  • [4. zookeeper 内部的数据模型](#4. zookeeper 内部的数据模型)
    • [4.1 数据结构模型图](#4.1 数据结构模型图)
  • 5.

1. 下载安装

2. 配置说明

2.1 配置

  • 如下:

    bash 复制代码
    # The number of milliseconds of each tick
    # zookeeper时间配置中的基本单位(毫秒)
    tickTime=2000
    
    # The number of ticks that the initial 
    # synchronization phase can take
    # 允许 follower 初始化连接到 leader 最大时长,它表示tickTime时间倍数,即:initLimit * tickTime
    initLimit=10
    
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    # 允许 follower 与 leader 数据同步最大时长,它表示tickTime时间倍数
    syncLimit=5
    
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    # zookeeper 数据存储目录及日志保存目录(如果没有指明dataLogDir,则日志也保存到这个文件夹中)
    # dataDir=/tmp/zookeeper
    dataDir=/home/susu/soft/softWare/zk/apache-zookeeper-3.5.9-bin/dataDir
    
    # the port at which the clients will connect
    # 对客户端提供的端口号
    clientPort=2181
    
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    # 单个客户端与zookeeper最大并发连接数
    # maxClientCnxns=60
    
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    # 保存数据快照数量,之外的将会被清除
    # autopurge.snapRetainCount=3
    
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    # 自动触发清除时间间隔,单位为小时。默认为0,表示不自动清除
    # autopurge.purgeInterval=1

3. zookeeper的常见命令

3.1 server端启动停止等命令

  1. 启动

    • 不指定配置文件启动

      bash 复制代码
      ./zkServer.sh start     #进入bin目录下,直接执行此命令
    • 指定配置文件启动

      bash 复制代码
      ./zkServer.sh start ../conf/zoo.cfg
  2. 停止

    bash 复制代码
    ./zkServer.sh stop   # 不指定文件
    ./zkServer.sh stop ../conf/zoo.cfg   # 指定文件
  3. 查看zk服务器的状态

    bash 复制代码
    ./zkServer.sh status

3.2 客户端连接等命令

  1. 启动server之后,连接客户端,连接客户端命令

    bash 复制代码
    ./zkCli.sh
    
    ./zkCli.sh -server 127.0.0.1:2181
  2. 退出客户端命令:

    bash 复制代码
    quit   # 注意:不加分号

3.3 客户端简单常用命令

3.3.1 查看目录(查看数据结构)

  • 如下:

    bash 复制代码
    ls /

3.3.2 删除目录

  • 删除目录

    bash 复制代码
    delete /aa       # 下面没有子节点的,可以直接用 delete
    deleteall /手机   # 下面有子节点的,用 deleteall

3.3.3 创建目录

  1. 直接创建目录

    bash 复制代码
    create /狗狗
    create /狗狗/边牧
    create /狗狗/边牧/麦兜

3.3.4 创建目录并写入值 + 查看节点值

  • 如下:

    bash 复制代码
    create /骆驼 园区2号
    get /骆驼

3.3.5 设置节点值

  • 如下:

    bash 复制代码
    set /猩猩 园外区-1号

3.3.6 查询节点

3.3.6.1 普通查询

3.3.6.1.1 普通简单查询
  • 如下:

    bash 复制代码
    get /骆驼    # 查询节点值
    ls /狗狗/边牧   # 查询其下的子节点
3.3.6.1.2 普通递归查询
  • 如下:

    bash 复制代码
    ls -R /

3.3.6.2 查询节点的详细信息

  • 查询含节点值的详细信息,如下:

    bash 复制代码
    get -s /猩猩
  • 解释:

    • 第一行显示:该节点的值
    • cZxid:创建节点的事务ID
    • ctime:创建节点的时间
    • mZxid:修改节点的事务ID
    • mtime:修改节点的时间(最近修改时间)
    • pZxid:添加和删除子节点的事务ID
    • cversion:cversion是指节点的子节点版本号,也就是说当一个节点的子节点发生变化时,cversion会自增。(即:每新增或删除一个子节点时,版本➕1)
    • dataVersion:dataVersion是指节点数据的版本号,当一个节点的数据发生变化时,dataVersion会自增。每更新一次数据(set一次即更新节点值),版本会➕1
    • aclVersion:此节点的权限版本
    • ephemeralOwner:如果当前节点是临时节点,该值是当前节点所有者的session id。如果节点不是临时节点,则值为零。
    • dataLength:节点内数据的长度(节点值)
    • numChildren:该节点的子节点个数

3.3.6.3 查询节点的详细信息2

  • 查询含子节点的,可以直接ls ,如下:

    bash 复制代码
    ls -s /猩猩

3.3.7 创建持久序号节点

  • 加选项 -s ,如下:

    bash 复制代码
     create -s /bb/bb1

3.3.8 创建临时节点

  • 什么是临时节点?
    临时节点是在会话结束后,自动被删除的,通过这个特性,zk可以实现服务注册与发现的效果。

  • 临时节点和普通节点的不同?临时节点如何维持心跳呢?

    • 在Zookeeper中,临时节点和持久节点是两种不同的节点类型。
    • 持久节点一旦创建,除非主动调用删除操作,否则会一直存储在Zookeeper上。
    • 而临时节点是与客户端会话绑定的,一旦客户端会话失效,这个客户端所创建的所有临时节点都会被移除。
    • 临时节点的特点是它们的生命周期与客户端会话相关,当客户端会话结束时,临时节点会被自动删除。而持久节点则会一直存在,直到被显式删除。
    • 看下面结构图理解临时节点和持久节点:

  • 创建临时节点的命令,如下:

    bash 复制代码
    create -e /cc     # 临时节点
    create -e -s /dd   # 临时序号节点


3.4 权限设置------创建权限节点

3.4.1 步骤

  • 首先,使用 addauth digest 命令给当前会话添加一个认证用户,如下:

    bash 复制代码
    addauth digest maidou    # 不带密码
    
    addauth digest beita:123456  # 带密码


3.4.2 解释

  • 在ZooKeeper中,创建节点权限的命令可以使用以下命令:

    bash 复制代码
    create \[-s\] \[-e\] path data acl

    其中,path是要创建的节点路径,data是节点的数据,acl是节点的权限设置。权限设置可以使用以下格式:

    bash 复制代码
    scheme:id:permission

    其中,scheme是权限方案,id是授权的对象,permission是授予的权限。常用的权限包括:

    • c:创建权限,可以在当前节点下创建子节点
    • r:读权限,可以读取节点的内容及子节点
    • w:写权限,可以向节点写入数据
    • d:删除权限,可以删除节点的子节点
    • a:管理权限,可以设置节点的权限
  • 所以,创建节点权限的命令可以使用类似以下格式:

    bash 复制代码
    create /path data scheme:id:permission

4. zookeeper 内部的数据模型

4.1 数据结构模型图

  • 如下:
  • 解释
    • zookeeper 中的数据是保存在节点上的,节点就是znode,多个znode之间构成一颗树的目录结构。zookeeper 的数据模型是什么样子的呢?它很像数据结构当中的树,也很像文件系统的目录。
    • 树是由节点组成,zookeeper 的数据存储也同样是基于节点,这种节点叫做znode。但是不同于树的节点,znode的引用方式是路径引用,类似于文件路径,如下:
    • 这样的层级结构,让每一个znode节点拥有唯一的路径,就像命名空间一样,对不同信息做出清晰的隔离。

5.

相关推荐
P.H. Infinity2 小时前
【RabbitMQ】03-交换机
分布式·rabbitmq
龙哥·三年风水5 小时前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
funnyZpC7 小时前
quartz集群增强版🎉
java·分布式·开源·集群·定时任务
明达技术7 小时前
工业4.0时代下的分布式IO模块
分布式
天冬忘忧9 小时前
Spark 程序开发与提交:本地与集群模式全解析
大数据·分布式·spark
一叶飘零_sweeeet10 小时前
Dubbo 构建高效分布式服务架构
分布式·架构·dubbo
孤蓬&听雨11 小时前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
呼啦啦啦啦啦啦啦啦11 小时前
RabbitMQ 七种工作模式介绍
分布式·rabbitmq
qq_2037694911 小时前
win11安装最新rabbitmq
分布式·rabbitmq·ruby
Amagi.11 小时前
RabbitMQ的解耦、异步、削峰是什么?
分布式·rabbitmq