在安裝Kafka集群的時候,碰到這個問題。
我們知道在搭建Kafka集群的時候,我們需要設置broker.id,以作為當前服務器在整個集群的唯一標志。
網上搜查資料是說,log.dirs目錄下的meta.properties中配置的broker.id和配置目錄下的server.properties中的broker.id不一致了,解決問題的方法是將兩者修改一致后再重啟。
而當時為何會產生這個問題?
1、Kafka配置目錄下文件server.properties中一個broker.id
# The id of the broker. This must be set to a unique integer for each broker. broker.id=2 # A comma seperated list of directories under which to store log files log.dirs=/tmp/kafka-logs
另外還有一個屬性log.dirs,這是kafka產生log目錄,log目錄 下有meta.properties文件,而meta.properties文件中也寫有broker.id,這是在運行時產生的。
#Wed Nov 08 15:59:53 PST 2017 version=0 broker.id=2
2、實際操作的因素
我是先搭建了單台的kafka,在上面試驗了一把(注意:這個時候已經在kafka的日志記錄下產生了相應的日志文件和meta.properties文件)。
然后開始搭建kafka集群,以前面的一台虛擬機為副本,直接克隆了另外2台kafka主機。
這樣在新的2台機器上,雖然改了另外兩台的server.properties的broker.id,第1台產生的日志記錄在另外兩台仍然存在,用meta.properties文件中的broker.id也需要修改成與server.properties中的broker.id一樣,所以造成了這個問題。
參考文檔
http://blog.csdn.net/shandadadada/article/details/50615866
