2012-07-15 34 views
1

我想让zookeeper在python api测试的独立模式下工作,并且遇到了python api的问题。如何让python zookeeper api工作?

1)这是我在Ubuntu如何安装11.04

sudo apt-get install zookeeper 
sudo easy_install zc-zookeeper-static 
from source install python zc.zk 
http://pypi.python.org/packages/source/z/zc.zk/zc.zk-0.9.1.tar.gz 

2)这里是我开始饲养员:

sudo /usr/share/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181 
Connecting to 127.0.0.1:2181 
Welcome to ZooKeeper! 
JLine support is enabled 
[zk: 127.0.0.1:2181(CONNECTING) 0] 

3)这里是我尝试使用每Python API中文档。

import zc.zk 
zk = zc.zk.ZooKeeper('localhost:2181') 
zk.register_server('/fooservice/providers', ('192.168.0.42', 8080)) 

4)这里是我得到的python错误。

No handlers could be found for logger "ZooKeeper" 
Traceback (most recent call last): 
    File "/home/ubuntu/workspace/rtbopsConfig/zookeeper/test.py", line 2, in <module> 
    zk = zc.zk.ZooKeeper('localhost:2181') 
    File "/usr/local/lib/python2.7/dist-packages/zc.zk-0.9.1-py2.7.egg/zc/zk/__init__.py", line 211, in __init__ 
    raise FailedConnect(connection_string) 
zc.zk.FailedConnect: localhost:2181 

5)这里是日志文件:

2012-07-15 14:23:51,666 - INFO [main-SendThread(localhost:2181):[email protected]] - Opening socket connection to server localhost/127.0.0.1:2181 
2012-07-15 14:23:51,667 - WARN [main-SendThread(localhost:2181):[email protected]] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect 
java.net.ConnectException: Connection refused 
     at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
     at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:592) 
     at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1078) 
2012-07-15 14:23:53,076 - INFO [main-SendThread(localhost:2181):[email protected]] - Opening socket connection to server localhost/127.0.0.1:2181 
2012-07-15 14:23:53,077 - INFO [main-SendThread(localhost:2181):[email protected]] - Socket connection established to localhost/127.0.0.1:2181, initiating session 
2012-07-15 14:23:53,165 - INFO [main-SendThread(localhost:2181):[email protected]] - Unable to reconnect to ZooKeeper service, session 0x0 has expired, closing socket connection 

所以...我是新来的饲养员。我想用python api启动并以独立模式运行。阿洛斯,似乎顶级是很多蟒蛇动物园管理员API的。哪一个是最常用的?

谢谢

回答

2

你在你的ubuntu上使用IPv6吗?将localhost替换为127.0.0.1,与zkCli.sh命令中使用的相同。您可以运行sudo netstat -lnp|grep 2181来检查动物园管理员收听的地址。

+0

以下是结果:sudo netstat -lnp | grep 2181我什么也没得到。就像它甚至没有运行。如何检查我是否使用IPv6? – Tampa 2012-07-15 07:38:41

+0

这很奇怪。如果动物园管理员正在运行,你会看到'tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 12682/java' ''sudo netstat -lnp | grep java'和'sudo ps aux | grep java | grep zookeeper'来检查你的zookeeper进程 – kimjxie 2012-07-15 07:53:24

+0

sudo ps aux | grep java | grep zookeeper [sudo] ubuntu的密码: root 21831 0.3 1.9 1054176 31108 pts/2 Sl + 14:07 0:22 java -Dzookeeper.log.dir =/var/log/zookeeper -Dzookeeper.root.logger = INFO,ROLLINGFILE -cp /etc/zookeeper/conf:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar: /usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/zookeeper.jar org.apache.zookeeper.ZooKeeperMain -server 127.0.0.1:2181 – Tampa 2012-07-15 08:08:17