最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用python 操作zookeeper

 更新時(shí)間:2020年12月28日 16:43:37   作者:三只松鼠  
這篇文章主要介紹了如何用python 操作zookeeper,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

ZooKeeper 簡(jiǎn)介

  ZooKeeper 是一個(gè)分布式的、開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是 Google 的 Chubby 一個(gè)開源的實(shí)現(xiàn),是 Hadoop 和 Hbase 的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。ZooKeeper 支持大部分開發(fā)語(yǔ)言,除了某些特定的功能只支持 Java 和 C。python 通過 kazoo 可以實(shí)現(xiàn)操作 ZooKeeper 。

一、安裝

 這個(gè)簡(jiǎn)單,使用 pip 命令安裝

pip3 install kazoo

二、連接 ZooKeeper 

 可通過 KazooClient 類直接連接 ZooKeeper ,支持多個(gè) host ,端口默認(rèn) 2181。

import json
from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()

三、創(chuàng)建節(jié)點(diǎn)

 先看下 create() 方法定義

def create(self, path, value=b"", acl=None, ephemeral=False,
        sequence=False, makepath=False):
 
    :param path: Path of node.
    :param value: Initial bytes value of node.
    :param acl: :class:`~kazoo.security.ACL` list.
    :param ephemeral: Boolean indicating whether node is ephemeral
             (tied to this session).
    :param sequence: Boolean indicating whether path is suffixed
             with a unique index.
    :param makepath: Whether the path should be created if it
             doesn't exist.

 我們來解釋下這些參數(shù):

  • path:          節(jié)點(diǎn)路徑
  • value:         節(jié)點(diǎn)對(duì)應(yīng)的值,注意值的類型是 bytes
  • ephemeral: 若為 True 則創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn),session 中斷后自動(dòng)刪除該節(jié)點(diǎn)。默認(rèn) False
  • sequence:     若為 True 則在你創(chuàng)建節(jié)點(diǎn)名后面增加10位數(shù)字(例如:你創(chuàng)建一個(gè) testplatform/test 節(jié)點(diǎn),實(shí)際創(chuàng)建的是 testplatform/test0000000003,這串?dāng)?shù)字是順序遞增的)。默認(rèn) False
  • makepath:  若為 False 父節(jié)點(diǎn)不存在時(shí)拋 NoNodeError。若為 True 父節(jié)點(diǎn)不存在則創(chuàng)建父節(jié)點(diǎn)。默認(rèn) False 

 舉個(gè)例子:

from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()
# 創(chuàng)建節(jié)點(diǎn):makepath 設(shè)置為 True ,父節(jié)點(diǎn)不存在則創(chuàng)建,其他參數(shù)不填均為默認(rèn)
zk.create('/testplatform/test',b'this is test!',makepath=True)
# 操作完后,別忘了關(guān)閉zk連接
zk.stop()
print(value)

四、查看節(jié)點(diǎn)

 KazooClient 類用提供 get_children() 和 get() 方法獲取 子節(jié)點(diǎn) 和 節(jié)點(diǎn)對(duì)應(yīng)的值

from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()
# 獲取某個(gè)節(jié)點(diǎn)下所有子節(jié)點(diǎn)
node = zk.get_children('/testplatform')
# 獲取某個(gè)節(jié)點(diǎn)對(duì)應(yīng)的值
value = zk.get('/testplatform/mssql')
# 操作完后,別忘了關(guān)閉zk連接
zk.stop()
print(node,value)

 五、更改節(jié)點(diǎn)

 更改上文創(chuàng)建的 node 值,使用 set() 方法

from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()
# 更改節(jié)點(diǎn)對(duì)應(yīng)的value
zk.set('/testplatform/test',b'this is not test')
# 獲取某個(gè)節(jié)點(diǎn)對(duì)應(yīng)的值
value = zk.get('/testplatform/test')
zk.stop()
print(value)

 六、刪除節(jié)點(diǎn)

  刪除上文創(chuàng)建的節(jié)點(diǎn),使用 delete() 方法

from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()
# 刪除節(jié)點(diǎn)對(duì)應(yīng)的value
zk.delete('/testplatform/test',recursive=False)
zk.stop()

 參數(shù) recursive:若為 False,當(dāng)需要?jiǎng)h除的節(jié)點(diǎn)存在子節(jié)點(diǎn),會(huì)拋異常 NotEmptyError 。若為True,則刪除 此節(jié)點(diǎn) 以及 刪除該節(jié)點(diǎn)的所有子節(jié)點(diǎn)

七、watches 事件

 zookeeper 所有讀操作都有設(shè)置 watch 選項(xiàng)(get_children() 、get() 和 exists())。watch 是一個(gè)觸發(fā)器,當(dāng)檢測(cè)到 zookeeper 有子節(jié)點(diǎn)變動(dòng) 或者 節(jié)點(diǎn)value發(fā)生變動(dòng)時(shí)觸發(fā)。下面以 get() 方法為例。

from kazoo.client import KazooClient

zk = KazooClient(hosts='10.1.44.55')
zk.start()

def test(event):
  print('觸發(fā)事件')

if __name__ == "__main__":
  zk.get('/testplatform/test',watch = test)
  print("第一次獲取value")
  zk.set('/testplatform/test',b'hello')
  zk.get('/testplatform/test',watch = test)
  print("第二次獲取value")



# 輸出
#第一次獲取value
#觸發(fā)事件
#第二次獲取value

需要更多高階使用的同學(xué),請(qǐng)參考 kazoo 官方文檔:https://kazoo.readthedocs.io/en/latest/api/client.html

以上就是如何用python 操作zookeeper的詳細(xì)內(nèi)容,更多關(guān)于python 操作zookeeper的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解如何使用opencv實(shí)現(xiàn)圖片相似度檢測(cè)

    詳解如何使用opencv實(shí)現(xiàn)圖片相似度檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了如何使用opencv實(shí)現(xiàn)圖片相似度檢測(cè),文中的示例代碼講解詳細(xì),對(duì)于我們學(xué)習(xí)人工智能有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    這篇文章主要介紹了關(guān)于matlab圖像濾波詳解(二維傅里葉濾波),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解PyTorch手寫數(shù)字識(shí)別(MNIST數(shù)據(jù)集)

    詳解PyTorch手寫數(shù)字識(shí)別(MNIST數(shù)據(jù)集)

    這篇文章主要介紹了詳解PyTorch手寫數(shù)字識(shí)別(MNIST數(shù)據(jù)集),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python實(shí)現(xiàn)TCPserver的使用示例

    python實(shí)現(xiàn)TCPserver的使用示例

    python實(shí)現(xiàn)TCPserver是一件簡(jiǎn)單的事情,只要通過socket這個(gè)模塊就可以實(shí)現(xiàn),本文就來介紹一下python實(shí)現(xiàn)TCPserver的使用示例,感興趣的可以了解一下
    2023-10-10
  • Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib

    Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib

    今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python函數(shù)式編程中itertools模塊詳解

    Python函數(shù)式編程中itertools模塊詳解

    這篇文章主要介紹了在Python中使用itertools模塊中的組合函數(shù)的教程,來自IBM官方技術(shù)文檔,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • Python批量對(duì)word文件重命名的實(shí)現(xiàn)示例

    Python批量對(duì)word文件重命名的實(shí)現(xiàn)示例

    本文主要介紹了Python批量對(duì)word文件重命名的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 用python按照?qǐng)D像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os)

    用python按照?qǐng)D像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os)

    這篇文章主要介紹了用python按照?qǐng)D像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 6種將Python代碼打包成exe應(yīng)用的方式

    6種將Python代碼打包成exe應(yīng)用的方式

    這篇文章主要給大家介紹了關(guān)于6種將Python代碼打包成exe應(yīng)用的方式,對(duì)于很多python的初學(xué)者來說,很希望將自己用python寫的.py文件生成exe直接在電腦上運(yùn)行,需要的朋友可以參考下
    2023-08-08
  • Python3的高階函數(shù)map,reduce,filter的示例詳解

    Python3的高階函數(shù)map,reduce,filter的示例詳解

    這篇文章主要介紹了Python3的高階函數(shù)map,reduce,filter的示例代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

阜宁县| 长治市| 共和县| 石台县| 弋阳县| 璧山县| 晋江市| 台南县| 峨边| 葵青区| 土默特左旗| 和硕县| 孟州市| 文成县| 广昌县| 沂南县| 雷州市| 广昌县| 大新县| 房山区| 郴州市| 普定县| 淳安县| 铁岭县| 措勤县| 钟祥市| 姚安县| 鄄城县| 深泽县| 苏尼特左旗| 渭南市| 琼中| 泸水县| 双桥区| 芦山县| 保靖县| 高尔夫| 高碑店市| 长丰县| 民乐县| 富顺县|