I was able to successfully set up zookeeper and one kafka broker yesterday. Everything worked as expected. I shut down kafka (ctrl + c) and then zookeeper.
Today I started zookeeper and when I started kafka (bin/kafka-server-start.sh config/server0.properties
), I get the following error. I tried various remedies suggested (removing completely my kafka installation and doing it again from scratch). Still I get same error.
[2016-09-28 16:15:55,895] FATAL Fatal error during KafkaServerStartable startup. Prepare to shutdown (kafka.server.KafkaServerStartable)
java.lang.RuntimeException: A broker is already registered on the path /brokers/ids/0. This probably indicates that you either have configured a brokerid that is already in use, or else you have shutdown this broker and restarted it faster than the zookeeper timeout so it appears to be re-registering.
at kafka.utils.ZkUtils.registerBrokerInZk(ZkUtils.scala:305)
at kafka.utils.ZkUtils.registerBrokerInZk(ZkUtils.scala:291)
at kafka.server.KafkaHealthcheck.register(KafkaHealthcheck.scala:70)
at kafka.server.KafkaHealthcheck.startup(KafkaHealthcheck.scala:51)
at kafka.server.KafkaServer.startup(KafkaServer.scala:244)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:37)
at kafka.Kafka$.main(Kafka.scala:67)
at kafka.Kafka.main(Kafka.scala)
[2016-09-28 16:15:55,896] INFO [Kafka Server 0], shutting down (kafka.server.KafkaServer)
All set up in mac
I found similar issue in my AWS server. The problem was zookeeper was running. So I killed the process first and tried again and it worked.
$ ps aux | grep zookeeper $kill -9 <zookeeper.properties process>
I had similar issue in with docker container containing zookeeper and kafka (it isn't best practise to put two services in one container, but it was for testing purpose).
this was the error
Quickfix for me was to start kafka-server a few seconds later;
I have faced the same issue while setting up the kafka and zookeeper multinode cluster. The cause of the issue is : As zookeeper ensemble takes some time to setup So when we start kafka brokers, all zookeeper nodes might not joined ensemble yet. So may be One kafka node connected to a zookeeper which is not yet in the ensemble. Another reason can be kafka broker is killed instead of stopped. When you kill your kafka process or it crashes, and it does not close its zookeeper connection correctly
To avoid this situation make sure your zookeeper ensemble is up and running before starting kafka brokers. Add proper waits between zookeeper and kafka broker services start and stop.
Make sure the kafka server shut down correctly by checking the default prot
9092
is already in use or not. Kill the process on9092
, and restart kafka server.If not works, might be the existing kafka server (with broker id 0) is already in use. Give it a try to change
broker.id
to 1 instead of 0 in "server0.properties" (btw, why it was called server0, did you change any config here? by default, it should be server.properties),Below approach worked for me.
Change the broker ID to a different value. By default it is
0
. Change it to1
and test things again.You just have to execute the
zookeeper-server-stop.[sh|bat]
script.