0
点赞
收藏
分享

微信扫一扫

2、客户端访问ZooKeeper--命令行客户端和图形化客户端访问

客户端访问

命令行客户端访问 ZooKeeper

安装zookeeper的bin里面,有命令行工具
[root@ubuntu2004 ~]#ls /usr/local/zookeeper/bin/zkCli.sh 
/usr/local/zookeeper/bin/zkCli.sh
里面存的脚本是由java运行起来的

#可连接至zookeeper 集群中的任意一台zookeeper 节点进行以下操作,zkCli.sh 默认连接本机

连接本机
[root@ubuntu2004 ~]#zkCli.sh
[zk: localhost:2181(CONNECTED) 0]  #两个tab键可以列出支持的命令
addWatch  addauth  close config  connect create  delete                 
deleteall delquota  get  getAcl  getAllChildrenNumber   getEphemerals   history          listquota  ls printwatches  quit reconfig  redo  removewatches  set                 setAcl setquota  stat  sync    version   whoami  

创建节点
[zk: localhost:2181(CONNECTED) 3] create /app1
Created /app1


连接远程主机
zkCli.sh -server 10.0.0.103:2181

nc访问zookeeper

ZooKeeper支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper服务 的当前状态及相关信息.用户在客户端可以通过 netcat 或telnet向zookeeper发送下面命令

常见命令列表

conf #输出相关服务配置的详细信息 
cons #列出所有连接到服务器的客户端的完全的连接/会话的详细信息 
envi #输出关于服务环境的详细信息 
dump #列出未经处理的会话和临时节点 
stat #查看哪个节点被选择作为Follower或者Leader 
ruok #测试是否启动了该Server,若回复imok表示已经启动 
mntr #输出一些运行时信息 reqs #列出未经处理的请求 
wchs #列出服务器watch的简要信息 
wchc #通过session列出服务器watch的详细信息 
wchp #通过路径列出服务器watch的详细信息 
srvr #输出服务的所有信息 
srst #重置服务器统计信息 
kill #关掉Server 
isro #查看该服务的节点权限信息

命令的安全限制

#默认情况下,这些4字命令有可能会被拒绝,发送如下报错
xxx is not executed because it is not in the whitelist.

解决办法:在 zoo.cfg文件中添加如下配置,如果是集群需要在所有节点上添加下面配置
[root@ubuntu2004 ~]#vim /usr/local/zookeeper/conf/zoo.cfg
4lw.commands.whitelist=*
[root@ubuntu2004 ~]#systemctl restart zookeeper.service 
[root@ubuntu2004 ~]#echo stat |nc 127.0.0.1 2181
Zookeeper version: 3.8.0-5a02a05eddb59aee6ac762f7ea82e92a68eb9c0f, built on 2022-02-25 08:49 UTC
Clients:
 /127.0.0.1:36300[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x7
Mode: standalone
Node count: 6

#也支持telnet,但不能用 | telnet形式

图形化客户端zooinspector

githab链接

https://github.com/zzhang5/zooinspector 
https://gitee.com/lbtooth/zooinspector.git

#https://github.com/zzhang5/zooinspector 
Build 

$git clone https://github.com/zzhang5/zooinspector.git 
$cd zooinspector/ 
$mvn clean package -Dmaven.test.skip=true Run $chmod +x target/zooinspector-pkg/bin/zooinspector.sh 
$target/zooinspector-pkg/bin/zooinspector.sh

范例

# github 
[root@zookeeper-node1 ~]#git clone https://github.com/zzhang5/zooinspector.git
#国内镜像
[root@zookeeper-node1 ~]#git clone https://gitee.com/lbtooth/zooinspector.git

[root@ubuntu2004 ~]#cd zooinspector/
[root@ubuntu2004 zooinspector]#apt install maven -y

java编译安装zooinspector,ubuntu不能编译,可用rocky编译好,把编译好的包给ubuntu用
[root@ubuntu2004 opt]#ls
zooinspector-1.0-SNAPSHOT-pkg.tar
[root@ubuntu2004 opt]#tar xf zooinspector-1.0-SNAPSHOT-pkg.tar 
[root@ubuntu2004 opt]#ls
zooinspector-1.0-SNAPSHOT  zooinspector-1.0-SNAPSHOT-pkg.tar
[root@ubuntu2004 opt]#cd zooinspector-1.0-SNAPSHOT/
[root@ubuntu2004 zooinspector-1.0-SNAPSHOT]#ls
bin  conf  repo
[root@ubuntu2004 zooinspector-1.0-SNAPSHOT]#cd bin/
[root@ubuntu2004 bin]#chmod +x *
[root@ubuntu2004 bin]#ls
zooinspector.bat  zooinspector.sh
打开图形页面,左上角连接zookeeper
[root@ubuntu2004 bin]#./zooinspector.sh

Python访问zookeeper

apt -y install python3 python3-kazoo

cat zookeepe_test.py
#!/usr/bin/python3
from kazoo.client import KazooClient

zk = KazooClient(hosts='10.0.0.105:2181')
zk.start()
# 创建节点:makepath 设置为 True ,父节点不存在则创建,其他参数不填均为默认
zk.create('/zkapp/test',b'this is a test',makepath=True)

#查看指定数据
data=zk.get('/zkapp/test')
print(data)

#查看所有数据
all_data=zk.get_children('/')
print(all_data)

# 操作完后关闭zk连接
zk.stop()


[root@ubuntu2004 zooinspector-1.0-SNAPSHOT]#python3 zookeepe_test.py 
(b'this is a test', ZnodeStat(czxid=11, mzxid=11, ctime=1667572293170, mtime=1667572293170, version=0, cversion=0, aversion=0, ephemeralOwner=0, dataLength=14, numChildren=0, pzxid=11))
['zkapp', 'zookeeper', 'app1']


举报

相关推荐

0 条评论