python操作zookeeper

有時候?qū)τ谝恍┳缘絲ookeeper的java服務(wù)屡立,因開發(fā)無法給出相應(yīng)的端口做監(jiān)控,所以想通過監(jiān)控工具對其進行監(jiān)控比較困難搀军,這里我們可以通過python獲取zookeeper的節(jié)點來判斷膨俐。
安裝zk:

 wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
 tar zxf  zookeeper-3.3.6.tar.gz 
 安裝zookeeper的c客戶端
 cd zookeeper-3.3.6/src/c
 make && make install
 啟動zk,并且測試是否生效:
 ./cli_mt localhost:2181
Watcher SESSION_EVENT state = CONNECTED_STATE
Got a new session id: 0x23f9d77d3fe0001

安裝python客戶端

wget  https://pypi.python.org/packages/14/38/a761465ab0a154405c11f7e5d6e81edf6e84584e114e152fddd340f7d6d3/zkpython-0.4.2.tar.gz
 cd zkpython-0.4.2
 python3 setup.py  install
 
 
 [root@centos3 zkpython-0.4.2]# python3
Python 3.4.7 (default, Sep  5 2017, 17:40:43) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import zookeeper
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>

ImportError: libzookeeper_mt.so.2: cannot open shared object file: No such file or directory
出現(xiàn)這個錯誤請在/etc/profile里添加如下變量: export LD_LIBRARY_PATH=/usr/local/lib

[root@centos3 liujiangbu]# python3
Python 3.4.7 (default, Sep  5 2017, 17:40:43) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>from kazoo.client import KazooClient

vim zk.py

#!/usr/bin/python3
import logging
from time import sleep
from kazoo.client import KazooClient
from kazoo.client import KazooState

zk = KazooClient('127.0.0.1:2181')
zk.start()

#判斷zk客戶端是否與server連接
def my_listener():

    if zk.state == "LOST":
        print("1111")# Register somewhere that the session was lost
    elif zk.state == "SUSPENDED":
        print("222222")
        # Handle being disconnected from Zookeeper
    else:
        # Handle being connected/reconnected to Zookeeper
        print("6666")

# print log to console
#logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)

#zk = KazooClient('127.0.0.1:2181')
#zk.start()

def children_callback(children):
    print('****',children)

children = zk.get_children('/zookeeper', children_callback)
my_listener()
zk.create('/zookeeper/goodboy12364567777')
#zk.delete('/zookeeper/555555')
while True: sleep(1)    

節(jié)點監(jiān)視功能解析:

>>> def children_callback(children):
...      print('****',children)
... 
>>> children = zk.get_children('/zookeeper/goodboy', children_callback)
>>> zk.create('/zookeeper/goodboy/12364567777333')
**** WatchedEvent(type='CHILD', state='CONNECTED', path='/zookeeper/goodboy')
**** WatchedEvent(type='CHILD', state='CONNECTED', path='/zookeeper/goodboy')
'/zookeeper/goodboy/12364567777333'

不過上面的 方法是一次性調(diào)用的,適用于節(jié)點長期穩(wěn)定不怎么變化的,對于節(jié)點經(jīng)常變更的使用于下面的方法:

>>> '/zookeeper/goodboy/12364567777333'
'/zookeeper/goodboy/12364567777333'
>>> @zk.ChildrenWatch("/zookeeper/goodboy")
... def watch_children(children):
...     print("Children are now: %s" % children)
... 
Children are now: ['12364567777333']

這個是動態(tài)手機節(jié)點變化的赏胚,當我在這個節(jié)點下再創(chuàng)建一個node衫冻,它會立馬返回/zookeeper/goodboy下面的節(jié)點列表:

>>> @zk.ChildrenWatch("/zookeeper/goodboy")Children are now: ['wwww12364567777', '12364567777333']

使用

from kazoo.client import KazooClient
zk = KazooClient(hosts='127.0.0.1:2181')
zk.start() //沒有異常的話就意味著連接上zookeeper
children = zk.get_children('/')
zk.stop()

獲取節(jié)點信息

zk.get_children("/zookeeper")
['goodboy', 'goodboy123', 'goodboy1', 'goodboy12', 'quota']
zk.get('/zookeeper/goodboy')
(b'', ZnodeStat(czxid=14, mzxid=14, ctime=1505749749490, mtime=1505749749490, version=0, cversion=0, aversion=0, ephemeralOwner=0, dataLength=0, numChildren=0, pzxid=14))
zk.state
'CONNECTED'

https://kazoo.readthedocs.io/en/latest/basic_usage.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蹬耘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖蔓姚,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異慨丐,居然都是意外死亡坡脐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門房揭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來备闲,“玉大人,你說我怎么就攤上這事崩溪。” “怎么了斩松?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵伶唯,是天一觀的道長。 經(jīng)常有香客問我惧盹,道長乳幸,這世上最難降的妖魔是什么瞪讼? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮粹断,結(jié)果婚禮上符欠,老公的妹妹穿的比我還像新娘。我一直安慰自己瓶埋,他們只是感情好希柿,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著养筒,像睡著了一般曾撤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晕粪,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天挤悉,我揣著相機與錄音,去河邊找鬼巫湘。 笑死装悲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的尚氛。 我是一名探鬼主播诀诊,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怠褐!你這毒婦竟也來了畏梆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤奈懒,失蹤者是張志新(化名)和其女友劉穎奠涌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷杏,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡溜畅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了极祸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慈格。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遥金,靈堂內(nèi)的尸體忽然破棺而出浴捆,到底是詐尸還是另有隱情,我是刑警寧澤稿械,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布选泻,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏页眯。R本人自食惡果不足惜梯捕,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窝撵。 院中可真熱鬧傀顾,春花似錦、人聲如沸碌奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽道批。三九已至错英,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隆豹,已是汗流浹背椭岩。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留璃赡,地道東北人判哥。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像碉考,于是被迫代替她去往敵國和親塌计。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 Zookeeper概述# ZooKeeper是一個為分布式應(yīng)用所設(shè)計的分布的侯谁、開源的協(xié)調(diào)服務(wù)锌仅,它主要是用來解決...
    七寸知架構(gòu)閱讀 7,351評論 0 101
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)墙贱,斷路器热芹,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • ZooKeeper介紹 Zookeeper 分布式服務(wù)框架是 Apache Hadoop 的一個子項目,它主要是用...
    Coselding閱讀 11,401評論 1 37
  • 一惨撇、ZooKeeper的背景 1.1 認識ZooKeeper ZooKeeper---譯名為“動物園管理員”伊脓。動物...
    algernoon閱讀 9,071評論 1 106
  • 前些天看到一句話說,一個人要么去讀書魁衙,要么去旅行报腔,身體和心靈總要有一個在路上。我個人認為這句話有點問題剖淀。為什么身體...
    或曰閱讀 310評論 0 0