Python
基本用法
列表与字典
选择与循环语句
函数与模块
中文转拼音
Excel操作
Panads
DOC操作
调用etcd模块
调用zookeeper模块
调用redis模块
pyinstaller打包
安装conda
使用conda打包32程序
python发送html邮件
HTTP请求
自建代理ip池
mysql操作
Python图片生成
HTML转图片
文件md5及base64
调用mongo
多进程与多线程
pyecharts绘图模块
多环境管理(Pyenv/Virtualenv)
PIP
本文档使用MrDoc发布
返回首页
-
+
调用zookeeper模块
2020年3月4日 15:43
admin
##安装kazoo pip3 install kazoo ##基本操作 from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 zk.stop() #与zookeeper断开 ##创建节点 from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 zk.create('/abc/JQK/XYZ/0001',b'this is my house',makepath=True) #makepath=True是递归创建,如果不加上中间那一段,就是建立一个空的节点 node = zk.get_children('/') # 查看根节点有多少个子节点 print(node) zk.stop() #与zookeeper断开 执行输出: ['abc', 'zookeeper'] 注意:空节点的值不能用set修改,否则执行报错! ##删除节点 如果要删除这个/abc/JQK/XYZ/0001的子node,但是想要上一级XYZ这个node还是存在的,语句如下: from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 zk.delete('/abc/JQK/XYZ/0001',recursive=True) #recursive=True是递归删除,就是无视下面的节点是否是空,都干掉,不加上的话,会提示子节点非空,删除失败 node = zk.get_children('/') # 查看根节点有多少个子节点 print(node) zk.stop() #与zookeeper断开 执行输出: ['abc', 'zookeeper'] ##更改节点 现在假如要在0001这个node里更改value,比如改成:"this is my horse!", from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 zk.set('/abc/JQK/XYZ/0001',b"this is my horse!") node = zk.get('/abc/JQK/XYZ/0001') # 查看值 print(node) zk.stop() #与zookeeper断开 执行输出: (b'this is my horse!', ZnodeStat(czxid=4294967449, mzxid=4294967452, ctime=1544598301273, mtime=1544598308267, version=1, cversion=0, aversion=0, ephemeralOwner=0, dataLength=17, numChildren=0, pzxid=4294967449)) #注意!set这种增加节点内容的方式是覆盖式增加,并不是在原有基础上增添。而且添加中文的话可能在ZooInspecter里出现的是乱码 ##查看节点 由于所有节点,都是在/ 节点上面的,直接查看根节点,就可以知道所有节点了 from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 node = zk.get_children('/') print(node) zk.stop() #与zookeeper断开 执行输出: ['abc', 'zookeeper'] ##一键清空zookeeper 有些时候,需要将zookeeper的数据全部清空,可以使用以下代码 from kazoo.client import KazooClient zk = KazooClient(hosts='192.168.91.128:2181') #如果是本地那就写127.0.0.1 zk.start() #与zookeeper连接 jiedian = zk.get_children('/') # 查看根节点有多少个子节点 print(jiedian) for i in jiedian: if i != 'zookeeper': # 判断不等于zookeeper print(i) # 删除节点 zk.delete('/%s'%i,recursive=True) zk.stop() #与zookeeper断开
分享到: