kafka啟動報錯&問題解決
kafka啟動報錯&問題解決
一早上班,就收到運維同事通知說有一臺物理機宕機,導致虛擬機器掛了。只得重啟kafka伺服器。
1.啟動
啟動zookeeper
bin/zkServer.sh start conf/zoo.cfg &
啟動kafka
bin/kafka-server-start.sh config/server.properties &
2.測試
問題一
kafka啟動之後,發現一直列印warn,上圖。且在程序中ps -ef| grep kafka,無法看到。很明顯kafka啟動失敗了。
Resetting first dirty offset of __consumer_offsets
從重複報錯資訊中可以得知,這是清理執行緒在一直遇到問題。最快的方式當前是清空kafka的data目錄。或者不管這個warn,當大量資料湧入的時候,產生了可以清理的segment,就不會再有這個warn了。參考 https://blog.csdn.net/define_us/article/details/80537186。
問題二
正常啟動kafka之後,測試能否使用走一波。
建立topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
生產者生產訊息
[[email protected] kafka_2.11-1.1.0]$ bin/kafka-console-producer.sh --broker-list 10.17.156.8:9092 --topic test
my name is xiaoqiang
消費者消費訊息
[[email protected] kafka_2.11-1.1.0]$ bin/kafka-console-consumer.sh --bootstrap-server 10.17.156.8:9092 --topic test --from-beginning
my name is xiaoqiang
至此,kafka啟動完成,正常使用。 ctrl+c,關掉Xshell視窗,專心碼程式碼。測試應用的時候發現,一堆報錯全部指向連不上kafka。再戰kafka伺服器,發現kafka程序已不在。
kafka啟動正常
應用啟動正常
ctrl+c
應用連線kafka報錯
kafka程序被幹掉
最終問題發現: 退出kafka時不用ctrl+c, 要用exit函式去退出