1. 程式人生 > >【問題集】broker少於kafka節點數

【問題集】broker少於kafka節點數

問題集僅為個人實踐,若有不準確的,歡迎交流!


 一、現象:

  叢集有3臺kafka伺服器,而kafka 的9002介面上broker僅有2個;log.dirs配置路徑為/data/kafka/data,而建立的topic資料都存放在預設路徑下/tmp/kafka-logs。

二、分析過程

  檢查server.properties中log.dirs目錄配置正確。檢視日誌目錄,發現報錯如下:

FATAL kafka.server.KafkaServer {...},Fatal error during kafkaServer startup.....:Socket sever failed to bind to 0.0.0.0:9092:地址已在被使用

  從報錯資訊上可知,應該是埠號被佔用了,停止kafka服務,使用命令:

lsof -i:9092

檢視發現還有程序使用9092埠,kill到相應程序,重啟服務,恢復正常。

三、延伸

  啟動kafka後,新建topic的資料所在地址正確了,但consumer的位置檔案__consumer_offset_可能還在之前的/tmp/kafka-logs下,此時,可以嘗試在kafka 9002介面上刪除__consumer_offset_後,重啟kafka服務。

  不好但可行的方案:可以手動刪除/tmp/kafka-logs下所有的檔案,重啟kafka服務,一切恢復正常。後遺症是:使用--list 選項查詢topic時,可能還能存在,此時想徹底刪除只能執行非常不推薦

的方法:手動刪除zookeeper目錄下對應檔案。

四、總結

  發現報錯資訊以後可以多分析報錯資訊  at.....後面的提示資訊。