zookeeper常用命令

zookeeper常用命令

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

1. 下载安装

  • 可以参考下面的文章:
    zookeeper安装与使用(win+linux).

2. 配置说明

2.1 配置

  • 如下:
    # 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. 启动

    • 不指定配置文件启动
      ./zkServer.sh start     #进入bin目录下,直接执行此命令
      
    • 指定配置文件启动
      ./zkServer.sh start ../conf/zoo.cfg
      
  2. 停止

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

    ./zkServer.sh status
    

    zookeeper常用命令_第1张图片

3.2 客户端连接等命令

  1. 启动server之后,连接客户端,连接客户端命令
    ./zkCli.sh
    
    ./zkCli.sh -server 127.0.0.1:2181
    
  2. 退出客户端命令:
    quit   # 注意:不加分号
    

3.3 客户端简单常用命令

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

  • 如下:
    ls /
    
    zookeeper常用命令_第2张图片

3.3.2 删除目录

  • 删除目录
    delete /aa       # 下面没有子节点的,可以直接用 delete
    deleteall /手机   # 下面有子节点的,用 deleteall
    
    zookeeper常用命令_第3张图片

3.3.3 创建目录

  1. 直接创建目录
    create /狗狗
    create /狗狗/边牧
    create /狗狗/边牧/麦兜
    
    zookeeper常用命令_第4张图片

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

  • 如下:
    create /骆驼 园区2号
    get /骆驼
    
    zookeeper常用命令_第5张图片

3.3.5 设置节点值

  • 如下:
    set /猩猩 园外区-1号
    
    zookeeper常用命令_第6张图片

3.3.6 查询节点

3.3.6.1 普通查询

3.3.6.1.1 普通简单查询
  • 如下:
    get /骆驼    # 查询节点值
    ls /狗狗/边牧   # 查询其下的子节点
    
3.3.6.1.2 普通递归查询
  • 如下:
    ls -R /
    
    zookeeper常用命令_第7张图片

3.3.6.2 查询节点的详细信息

  • 查询含节点值的详细信息,如下:
    get -s /猩猩
    
    zookeeper常用命令_第8张图片
  • 解释:
    • 第一行显示:该节点的值
    • 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 ,如下:
    ls -s /猩猩
    
    zookeeper常用命令_第9张图片

3.3.7 创建持久序号节点

  • 加选项 -s ,如下:
     create -s /bb/bb1
    
    zookeeper常用命令_第10张图片

3.3.8 创建临时节点

  • 什么是临时节点?
    临时节点是在会话结束后,自动被删除的,通过这个特性,zk可以实现服务注册与发现的效果。
  • 临时节点和普通节点的不同?临时节点如何维持心跳呢?
    • 在Zookeeper中,临时节点和持久节点是两种不同的节点类型。
    • 持久节点一旦创建,除非主动调用删除操作,否则会一直存储在Zookeeper上。
    • 而临时节点是与客户端会话绑定的,一旦客户端会话失效,这个客户端所创建的所有临时节点都会被移除。
    • 临时节点的特点是它们的生命周期与客户端会话相关,当客户端会话结束时,临时节点会被自动删除。而持久节点则会一直存在,直到被显式删除。
    • 看下面结构图理解临时节点和持久节点:
      zookeeper常用命令_第11张图片
      zookeeper常用命令_第12张图片
  • 创建临时节点的命令,如下:
    create -e /cc     # 临时节点
    create -e -s /dd   # 临时序号节点
    
    zookeeper常用命令_第13张图片
    zookeeper常用命令_第14张图片

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

3.4.1 步骤

  • 首先,使用 addauth digest 命令给当前会话添加一个认证用户,如下:
    addauth digest maidou    # 不带密码
    
    addauth digest beita:123456  # 带密码
    
    zookeeper常用命令_第15张图片
    zookeeper常用命令_第16张图片

3.4.2 解释

  • 在ZooKeeper中,创建节点权限的命令可以使用以下命令:
    create \[-s\] \[-e\] path data acl
    
    其中,path是要创建的节点路径,data是节点的数据,acl是节点的权限设置。权限设置可以使用以下格式:
    scheme:id:permission
    
    其中,scheme是权限方案,id是授权的对象,permission是授予的权限。常用的权限包括:
    • c:创建权限,可以在当前节点下创建子节点
    • r:读权限,可以读取节点的内容及子节点
    • w:写权限,可以向节点写入数据
    • d:删除权限,可以删除节点的子节点
    • a:管理权限,可以设置节点的权限
  • 所以,创建节点权限的命令可以使用类似以下格式:
    create /path data scheme:id:permission
    

4. zookeeper 内部的数据模型

4.1 数据结构模型图

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

5.

你可能感兴趣的:(#,zookeeper,zookeeper,分布式)