kafka cant connect to zookeeper- FATAL Fatal error

2020-07-14 09:53发布

问题:

Well..every service in the world can connect to my zookeeper expect kafka. Below is my connection string in server.properties file

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

Have have all ports on the two zookeeper servers ....total promiscuous mode. I can even telnet into the zookeeper server from the kafka server..

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

So....rather confused on why kafka will not connect to zookeeper?

I am using ubuntu 12.04 and 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)

回答1:

In your kafka/config/server.properties, there should be a property

#host.name=localhost

if you have uncommented this, or set this to another name, then that name should be in the /etc/hosts file



回答2:

It's been a while since this has been answered, but in case it could help someone here is how i fixed it :

Actually i am using an Ansible playbook to install Kafka cluster and the params generated in zookeeper.properties file were not correctly ordered :

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

Putting them in the right order,

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

Then restart Kafka service, fixed it.