kafka无法连接到zookeeper-FATAL KafkaServerStable启动期间的致命错误

时间:2013-07-16 04:50:24

标签: apache-zookeeper apache-kafka

嗯..世界上的每一项服务都可以连接到我的动物园管理员,期待kafka。下面是我在server.properties文件中的连接字符串

zk.connect=1.dzk.syd.druid.neo.com:2181, 2.dzk.syd.druid.neo.com:2181

两个zookeeper服务器上都有所有端口....总混杂模式。我甚至可以从kafka服务器telnet到zookeeper服务器..

telnet  2.dzk.syd.druid.neo.com 2181
Trying 54.252.183.218...
Connected to 2.dzk.syd.druid.neo.com.
Escape character is '^]'.

所以......为什么kafka不会连接到zookeeper而感到困惑?

我使用的是ubuntu 12.04和kafka 0.7.2

[2013-07-16 04:36:49,915] INFO Client environment:user.home=/root (org.apache.zookeeper.ZooKeeper)
[2013-07-16 04:36:49,915] INFO Client environment:user.dir=/etc/sv/kafka (org.apache.zookeeper.ZooKeeper)
[2013-07-16 04:36:49,916] INFO Initiating client connection, connectString=1.dzk.syd.druid.neo.com:2181, 2.dzk.syd.druid.neo.com:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@39cc65b1 (org.apache.zookeeper.ZooKeeper)
[2013-07-16 04:36:49,935] INFO Terminate ZkClient event thread. (org.I0Itec.zkclient.ZkEventThread)
[2013-07-16 04:36:49,938] FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable)
org.I0Itec.zkclient.exception.ZkException: Unable to connect to 1.dzk.syd.druid.neo.com:2181, 2.dzk.syd.druid.neo.com:2181
    at org.I0Itec.zkclient.ZkConnection.connect(ZkConnection.java:66)
    at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:872)
    at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
    at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84)
    at kafka.server.KafkaZooKeeper.startup(KafkaZooKeeper.scala:44)
    at kafka.log.LogManager.<init>(LogManager.scala:93)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:58)
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
    at kafka.Kafka$.main(Kafka.scala:47)
    at kafka.Kafka.main(Kafka.scala)
Caused by: java.net.UnknownHostException:  2.dzk.syd.druid.neo.com: Name or service not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
    at java.net.InetAddress.getAllByName(InetAddress.java:1155)
    at java.net.InetAddress.getAllByName(InetAddress.java:1091)
    at org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:387)
    at org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:332)
    at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:383)
    at org.I0Itec.zkclient.ZkConnection.connect(ZkConnection.java:64)
    ... 9 more
[2013-07-16 04:36:49,942] INFO Shutting down Kafka server (kafka.server.KafkaServer)
[2013-07-16 04:36:49,943] INFO shutdown scheduler kafka-logcleaner- (kafka.utils.KafkaScheduler)
[2013-07-16 04:36:49,944] INFO Kafka server shut down completed (kafka.server.KafkaServer)

2 个答案:

答案 0 :(得分:5)

在你的kafka / config / server.properties中,应该有一个属性

#host.name=localhost

如果您已取消注释,或将其设置为其他名称,则该名称应位于/ etc / hosts文件中

答案 1 :(得分:0)

已经回答了好一阵子了,但是如果可以帮助某人,这就是我的解决方法:

实际上,我正在使用Ansible剧本安装Kafka集群,并且zookeeper.properties文件中生成的参数未正确排序:

server.1=0.0.0.0:2888:3888
server.2=kafka-4:2888:3888
server.3=kafka-5:2888:3888
server.4=kafka-3:2888:3888
server.5=kafka-2:2888:3888

以正确的顺序放置它们,

server.1=0.0.0.0:2888:3888
server.2=kafka-2:2888:3888
server.3=kafka-3:2888:3888
server.4=kafka-4:2888:3888
server.5=kafka-5:2888:3888

然后重新启动Kafka服务,对其进行修复。