2016-09-28 27 views
4

昨天我成功地设立了zookeeper和一个kafka经纪人。一切按预期工作。我关闭了kafka(ctrl + c),然后关闭了zookeeper。开始kafka经纪人时出错

今天我开始动物园管理员,当我开始kafka(bin/kafka-server-start.sh config/server0.properties),我得到以下错误。我尝试过各种补救措施(完全删除我的卡夫卡安装,并从头开始重新做)。我仍然有同样的错误。

[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) 

在Mac

回答

0

确保通过检查默认PROT 9092正确关闭卡夫卡服务器已经在使用或不全部设置完成。杀死进程9092,然后重新启动kafka服务器。

如果无法正常工作,可能是现有的kafka服务器(代理ID为0)已被使用。 试一试改变broker.id 1而不是0“server0.properties”(顺便说一句,为什么它被称为server0对,你在这里更改任何配置?默认情况下,它应该是server.properties),

-3

您只需执行zookeeper-server-stop.[sh|bat]脚本。投票最多

1

我遇到了同样的问题,有2种方式去了解它

  1. [推荐]你需要清理的券商IDS在动物园管理员路径/经纪人/ IDS/[]。使用zk-cli tool delete命令清理路径。启动你的经纪人并验证它向协调员注册。
  2. 解决此问题的另一种方法是将您的broker-id从kafka服务器配置更改并重新启动代理。但是,这会破坏你的分区和数据不建议
1

我在我的AWS服务器中发现类似的问题。问题是动物园管理员正在运行。所以我首先杀死了这个进程,然后再次尝试并且工作。 $ ps aux | grep zookeeper $kill -9 <zookeeper.properties process>

+0

对我来说,这件事发生在我的本地机器上。我有一套docker命令在启动时运行。其中之一,我不知道,是动物园管理员。一旦我杀死码头程序,我就可以开始我自己的动物园管理员,然后kafka服务器工作。 –

2

我在设置kafka和zookeeper多节点集群时遇到了同样的问题。 问题的原因是: 由于zookeeper集合需要一些时间来设置因此,当我们启动kafka broker时,所有zookeeper节点可能还没有加入集合。 所以可能是一个kafka节点连接到还没有在整体中的动物园管理员。 另一个原因可能是卡夫卡经纪人死亡,而不是停止。 当你杀死你的卡夫卡进程或它崩溃,并没有正确关闭它的动物园管理员连接

为了避免这种情况,请确保你的zookeeper合奏在启动kafka代理前启动并运行。在zookeeper和kafka broker服务之间添加适当的等待开始和结束。

+0

但是,如何解决问题一旦发生? –

1

你可以看到

# the directory where the snapshot is stored. 
dataDir=/tmp/zookeeper 
config/zookeeper.properties

所以重新启动ZK &卡夫卡前,记得删除饲养员的快照:

rm -rf /tmp/zookeeper 

然后一切正常:d

相关问题