写点什么

Zookeeper 安装与基础命令操作

  • 2022-11-21
    江西
  • 本文字数:1693 字

    阅读完需:约 6 分钟

Part1 安装 ZK


下载安装包

点击下载zookeeper 3.4.14

PS: Mac 之前下载了 3.5.6 启动之后,报错

找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
复制代码

应该是 lib 下的 jar 包缺失,省的麻烦,我就直接下载了 3.4.14 版本

启动 ZkServer

执行 zk 的 bin 下面的启动脚本;例如

sh ~/Documents/各种安装包/zookeeper-3.4.14/bin/zkServer.sh start 
复制代码

查看状态、停止 zk 服务

##查看zk启动状态sh ~/Documents/各种安装包/zookeeper-3.4.14/bin/zkServer.sh status## 停止sh ~/Documents/各种安装包/zookeeper-3.4.14/bin/zkServer.sh stop
复制代码

客户端连接 ZkServer

sh ~/Documents/各种安装包/zookeeper-3.4.14/bin/zkCli.sh
复制代码


在这里插入图片描述

ls 查看命令

在这里插入图片描述

get 获取数据

get 和 stat 的区别是 get 比 stat 多返回了节点数据:

[zk: localhost:2181(CONNECTED) 19] get /zookeeper/quota
cZxid = 0x0       #创建节点的idctime = Thu Jan 01 08:00:00 CST 1970 #节点的创建时间mZxid = 0x0  #修改节点的idmtime = Thu Jan 01 08:00:00 CST 1970  #修改节点的时间pZxid = 0x0  #子节点的idcversion = 0  #子节点的版本dataVersion = 0 #当前节点数据的版本aclVersion = 0 #权限的版本ephemeralOwner = 0x0 #判断是否是临时节点dataLength = 0  #数据的长度numChildren = 0  #子节点的数量
复制代码

create 创建节点

  • create [-s] [-e] path data acl 可以注意一下各个版本的变化-s: 创建顺序节点 自动累加(全局累加)

  • -e:创建临时节点

set path data [version] 修改节点


根据版本号修改


delete path [version] 删除节点

delete 只能用来删除叶子节点,如果节点下有子节点的话则不能删除

rmr path

用来删除节点,与 delete 的区别是 delete 只能用来删除叶子节点,如果节点下有子节点的话则不能删除,则 rmr 可以删除非叶子节点,即节点下有子节点时仍可以删除节点,zk 中的 delete 类似于 Linux 下的 rmdir,只能用来删除空目录,而 rmr 则类似于 rm -rf,不管目录下面有什么都递归删除

1watch 通知机制

关于 watcher 机制大体的理解可以为,当每个节点发生变化,都会触发 watcher 事件,类似于 mysql 的触发器。zk 中 watcher 是一次性的,触发后立即销毁。可以参考https://blog.csdn.net/hohoo1990/article/details/78617336

  • stat path [watch]设置 watch 事件

  • get path [watch]设置 watch 事件

  • 子节点创建和删除时触发 watch 事件,子节点修改不会触发该事件

stat path [watch] 设置 watch 事件

在这里插入图片描述

2ACL 权限控制

ZK 的节点有 5 种操作权限:CREATEREADWRITEDELETEADMIN 也就是 增、删、改、查、管理权限,这 5 种权限简写为crwda(即:每个单词的首字符缩写)。注:这 5 种权限中,delete是指对子节点的删除权限,其它 4 种权限指对自身节点的操作权限

身份的认证有 4 种方式:

  • world:默认方式,相当于全世界都能访问

  • auth:代表已经认证通过的用户(cli 中可以通过 addauth digest user:pwd 来添加当前上下文中的授权用户)

  • digest:即用户名:密码这种方式认证,这也是业务系统中最常用的

  • ip:使用 Ip 地址认证

使用[scheme:id:permissions]来表示 acl 权限

getAcl:获取某个节点的 acl 权限信息

在这里插入图片描述

setAcl 设置权限

在这里插入图片描述

acl Auth 密码明文设置

acl digest 密码密文设置

acl ip 控制客户端

3 四字命令 Four Letter Words

  • 使用四字命令需要安装nc命令,(yum install nc)

stat 查看状态信息

echo stat | nc 127.0.0.1 2181
复制代码

ruok 查看 zookeeper 是否启动

echo ruok | nc 127.0.0.1 2181
复制代码

dump 列出没有处理的节点,临时节点

echo dump | nc 127.0.0.1 2181
复制代码

conf 查看服务器配置

echo conf | nc 127.0.0.1 2181
复制代码

cons 显示连接到服务端的信息

echo cons | nc 127.0.0.1 2181
复制代码

envi 显示环境变量信息

echo envi | nc 127.0.0.1 2181
复制代码

mntr 查看 zk 的健康信息

echo mntr | nc 127.0.0.1 2181
复制代码

wchs 展示 watch 的信息

echo wchs | nc 127.0.0.1 2181
复制代码

wchc 和 wchp 显示 session 的 watch 信息 path 的 watch 信息

  • 需要在 配置zoo.cfg文件中添加 4lw.commands.whitelist=*

 
复制代码

4 参考文章

1.Zookeeper基础命令操作

发布于: 刚刚阅读数: 3
用户头像

关注公众号: 石臻臻的杂货铺 获取最新文章 2019-09-06 加入

进高质量滴滴技术交流群,只交流技术不闲聊 加 szzdzhp001 进群 20w字《Kafka运维与实战宝典》PDF下载请关注公众号:石臻臻的杂货铺

评论

发布
暂无评论
Zookeeper安装与基础命令操作_zookeeper_石臻臻的杂货铺_InfoQ写作社区