zookeeper 是hadoop的分布式服务重要支柱。官方有提供了C语言client。有很多热心的pythoner都为它实现了多个client。
最近刚好在研究zookeeper,下面综合考虑了现有的常见python客户端,讨论一下:
-
zkpython
它是比较早的一个客户端,它依赖zookeeper的C语言库,因此它必须是在linux下使用。
这里有几篇关于它的使用方法的文章,大家可以感受一下:
- 在python中使用zookeeper管理你的应用集群:
http://www.zlovezl.cn/articles/40/
- zookeeper客户端zkpython使用文档(一)
http://justfansty.blog.sohu.com/217953183.html
http://justfansty.blog.sohu.com/218331818.html
-
zklock
zklock是使用zkpython来完成的一个分布式锁实现。由于它依赖了zkpython,所以它也必须是在linux下才能运行。
关于分布式的锁服务,其实也可以采用 memcached_lock 。它的好处在于它可以在windows下运行。
-
zc.zk
它是zookeeper官方认定的一个python实现(可见:https://cwiki.apache.org/ZOOKEEPER/zkclientbindings.html)。必须使用zookeeper的C库或者安装 zc-zookeeper-static 3.4.4 ,然后才能安装它。因此,它也必须是在linux下才能运行的。
-
kazoo
kazoo也是zookeeper官方认定的一个强大的纯python实现(为什么说是纯呢?就是因为它无需要依赖zookeeper的C库)。它不仅有zookeeper的所有原语实现,并且,他还实现了 分布式锁等高级语义。
由于作者认为zookeeper都是在linux下运行的,所以kazoo不支持windows。(可参见:https://groups.google.com/forum/#!topic/python-zk/EHdF-c_N0OI)
因此,可见,目前所有zookeeper python客户端都只能支持linux下运行的。