報錯如圖:
解決方法如下:
1.調整連接超時時間 #經過一個下午的排錯后,最終通過這個辦法解決了。
zookeeper.connection.timeout.ms=6000 連接超時時間改為60000,即60秒,默認是6秒
在重新啟動kafka,不要用-daemon或&后台啟動,直接前台啟動,查看輸出信息,是否有明顯位置報錯,我當時就是這樣操作的,啟動就好了。我想應該是默認的6秒太短了,kafka沒法與我部署的zookeeper集群及時通信造成的。
2.請仔細檢查kafka配置文件中的zookeeper連接的ip和端口是否正確。
zookeeper.connect=10.30.30.13:2181,10.30.30.33:2181,10.30.30.52:2181
3.版本不一致導致的。
kafka安裝目錄下的libs下有當前kafka版本對應的zookeeper版本
我的環境如下:
kafka_2.12-2.1.1
zookeeper-3.4.13
注:開始用的zookeeper-3.4.6版本不行,以為是版本不對,換了zookeeper-3.4.13仍然不行,說明這個版本不是要一一完全對應。
版本對照表參考博客:
https://www.cnblogs.com/ro0k1e/p/12459226.html
4.控制台輸出Will not attempt to authenticate using SASL,被此誤導,一直以為是認證的問題。
1)zookeeper關閉了認證,仍然不行
2)按照阿里雲的博客,添加了認證,仍然不行。
https://developer.aliyun.com/article/708449