2

我正在尝试让 zookeeper 以独立模式工作以进行 python api 测试,并且遇到了 python 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)这是我启动zookeeper的方式:

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):ClientCnxn$SendThread@1000] - Opening socket connection to server localhost/127.0.0.1:2181
2012-07-15 14:23:51,667 - WARN  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1120] - 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):ClientCnxn$SendThread@1000] - Opening socket connection to server localhost/127.0.0.1:2181
2012-07-15 14:23:53,077 - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@908] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2012-07-15 14:23:53,165 - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1114] - Unable to reconnect to ZooKeeper service, session 0x0 has expired, closing socket connection

所以......我是动物园管理员的新手。我想使用 python api 以独立模式启动并运行。阿洛斯,似乎有很多 python zookeeper api。哪一个是最常用的?

谢谢

4

1 回答 1

2

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

于 2012-07-15T07:18:55.613 回答