5

好吧..世界上的每一项服务都可以连接到我的动物园管理员(除了 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)
4

2 回答 2

5

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

#host.name=localhost

如果您取消了注释,或者将其设置为另一个名称,那么该名称应该在 /etc/hosts 文件中

于 2013-11-11T13:38:56.557 回答
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服务,修复它。

于 2019-10-23T13:37:11.007 回答