Zookeeper 或 Kafka 连接错误,显示 Kazoo::VersionNotSupported 错误

Zookeeper or Kafka connection Error, Showing Kazoo::VersionNotSupported Error

我正在使用 Kafka 和 zookeeper,并在它们之间创建连接,但是当我尝试创建新的连接时,连接一次又一次地断开 Kafka::Consumer

ZOOKEEPER = '127.0.0.1:2181'
CLIENT_ID = '************'
TOPICS    = ['*****']

@consumer = Kafka::Consumer.new(CLIENT_ID, TOPICS, zookeeper: ZOOKEEPER, logger: nil)

我还检查了 zookeeper 和 kafka 日志文件,发现当我尝试创建新的时,我的 kafka 到 zookeeper 的连接断开了 Kafka::Consumer

卡夫卡日志:

  ...
  [2016-03-04 16:14:47,553] INFO [Group Metadata Manager on Broker 0]: Removed 0 expired offsets in 0 milliseconds. (kafka.coordinator.GroupMetadataManager)
  [2016-03-04 16:16:11,419] INFO Unable to read additional data from server sessionid 0x1533ff65f850003, likely server has closed socket, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
  [2016-03-04 16:16:11,520] INFO zookeeper state changed (Disconnected) (org.I0Itec.zkclient.ZkClient)
  [2016-03-04 16:16:13,128] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
  [2016-03-04 16:16:13,129] WARN Session 0x1533ff65f850003 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
  java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
  ...

Zookeeper 日志:

...
2016-04-04 10:30:30,577 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@839] - Client attempting to establish new session at /127.0.0.1:51152
2016-04-04 10:30:30,579 - INFO  [SyncThread:0:FileTxnLog@199] - Creating new log file: log.725
2016-04-04 10:30:30,668 - INFO  [SyncThread:0:ZooKeeperServer@595] - Established session 0x153df9fc2a70000 with negotiated timeout 6000 for client /127.0.0.1:51152
2016-04-04 10:30:31,714 - INFO  [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor@627] - Got user-level KeeperException when processing sessionid:0x153df9fc2a70000 type:delete cxid:0x26 zxid:0x728 txntype:-1 reqpath:n/a Error Path:/admin/preferred_replica_election Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election
2016-04-04 10:30:31,883 - INFO  [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor@627] - Got user-level KeeperException when processing sessionid:0x153df9fc2a70000 type:create cxid:0x2d zxid:0x729 txntype:-1 reqpath:n/a Error Path:/brokers Error:KeeperErrorCode = NodeExists for /brokers
...

已安装的 Gem

完全搞不懂是哪里的版本问题

获取错误:

~/../kazoo-ruby-0.4.0/lib/kazoo/broker.rb:83:in `from_json': Kazoo::VersionNotSupported
~/../kazoo-ruby-0.4.0/lib/kazoo/cluster.rb:38:in `block (3 levels) in brokers'

得到解决方案,我使用的是 Kafka 版本 0.9.0.1 或 0.8.0 Beta,这造成了一些版本问题。现在,我下载并安装了 Kafka 0.8.2.2 以及适用于我的 scala 2.11 版本。