2016-09-28 26 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

相關問題