前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 访问 zookeeper

python 访问 zookeeper

作者头像
py3study
发布2020-01-13 11:21:02
1.1K0
发布2020-01-13 11:21:02
举报
文章被收录于专栏:python3

python 访问 zookeeper

zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。zookeeper提供可靠的存储,利用它可以保存当前工作的状态。当使用python在某个客户端服务器访问zookeeper集群,需要在客户端服务器上安装zookeeper(不是集群的zookeeper)c开发环境,不需要配置。

1) 下载zookeeper源码

代码语言:javascript
复制
$ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

由于python客户端依赖c的客户端所以要先安装c版本的客户端

代码语言:javascript
复制
$ cd zookeeper-3.4.5/src/c
$ ./configure
$ make 
$ sudo make install

测试c客户端命令行与zk集群(hacl-node3.pepstack.com:2181是zk集群的其中一台服务)联通情况:

代码语言:javascript
复制
[root@vm-repo c]# ./cli_mt hacl-node3.pepstack.com:2181
Watcher SESSION_EVENT state = CONNECTED_STATE
Got a new session id: 0x153eaa3fe840011
ls /
time = 5 msec
/: rc = 0
	hadoop-ha
	hbase
	reg
	admin
	zookeeper
	consumers
	config
	storm
	yarn-leader-election
	brokers
	controller_epoch
time = 6 msec

OK!

2) 下载zkpython

代码语言:javascript
复制
$ wget https://pypi.python.org/packages/source/z/zkpython/zkpython-0.4.2.tar.gz

解压安装:

代码语言:javascript
复制
$ tar -zxf zkpython-0.4.2.tar.gzcd zkpython-0.4.2
$ python2.7 setup.py build
$ python2.7 setup.py install

3) 使用python访问zookeeper

代码语言:javascript
复制
$ python2.7
>>> import zookeeper

报错:

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "build/bdist.linux-x86_64/egg/zookeeper.py", line 7, in <module>   File "build/bdist.linux-x86_64/egg/zookeeper.py", line 6, in __bootstrap__ ImportError: libzookeeper_mt.so.2: cannot open shared object file: No such file or directory

解决方法任选一种:

(一) 将下面这句加入到 /etc/profile 最后一行(libzookeeper_mt.so在/usr/local/lib下面):

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

然后执行:

代码语言:javascript
复制
$ . /etc/profile

或者(二):

代码语言:javascript
复制
# echo "/usr/local/lib" >> /etc/ld.so.conf
# /sbin/ldconfig

这样就加入到默认系统链接库啦!

再测试:

代码语言:javascript
复制
$ python2.7
>>> import zookeeper as zoo

# 初始化连接到集群
zk = zoo.init("hacl-node3.pepstack.com:2181,hacl-node4.pepstack.com:2181,hacl-node5.pepstack.com:2181")

# 获取所有节点
zoo.get_children(zk, "/", None)

完整的zkpython使用超出了本文的范畴, 参考: Zookeeper原理与使用(必读): http://blog.csdn.net/xinguan1267/article/details/38422149 zookeeper c api: http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html http://www.cnblogs.com/Xjng/p/3691421.html

http://www.cnblogs.com/lexus/archive/2012/03/11/2390203.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python 访问 zookeeper
    • 1) 下载zookeeper源码
      • 2) 下载zkpython
        • 3) 使用python访问zookeeper
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档