關於Windows安裝kafka過程中的一些問題

網上有很多安裝Kafka的教程,這裏只談在安裝Kafka時可能會出現的一些問題。

在很多網絡資料都會談到要安裝Kafka就要先安裝zookeeper,啓動zookeeper,然後才能啓動Kafka。

安裝zookeeper基本不會有什麼問題,流程很簡單:

1、在官網下載壓縮包(一定要二進制(binary)的壓縮包,即帶bin字樣的壓縮包);

2、複製zookeeper安裝目錄下的conf目錄中的zoo_sample.cfg文件,改爲zoo.cfg並修改其中的“dataDir”的值(必須配置,用於配置存儲快照文件的目錄);

3、配置zookeeper的環境變量。

之後就是Kafka的安裝,Kafka不需要配置環境變量,只要在官網(https://kafka.apache.org/downloads#2.4.0)下載Binary downloads下面的Scala版的壓縮包(Kafka也要下載二進制Binary 的壓縮包,不要下載源碼包Source download),然後解壓到安裝目錄下。

此時要先啓動zookeeper,我在先前安裝的zookeeper目錄下使用zkServer命令啓動zookeeper,這一步是沒問題的,但接下來啓動Kafka就會報錯:

有的教程會建議在這一步先後執行兩個命令(在Kafka安裝目錄下的bin目錄中的windows目錄打開CMD終端):

 .\zookeeper-server-start.bat ..\..\config\zookeeper.properties



.\kafka-server-start.bat ..\..\config\server.properties

前面一條是啓動zookeeper,後一條是啓動Kafka。

但這麼一來,基本會出現“Address already in use”的報錯信息,原因是“在安裝zookeeper之後,又開啓了zookeeper的server和client。然後又繼續安裝kafka,而kafka有繼續開啓zookeeper,導致重複使用端口報錯”(https://www.2cto.com/net/201804/739483.html)。我估計zookeeper就是Kafka的服務端,因爲前面使用zkServer啓動過zookeeper,這裏又執行兩條命令來啓動zookeeper和Kafka,因此報錯。

上面這個問題的解決辦法就是“停止使用zookeeper的服務,或者直接開啓kafka的server和client。而不是使用kafka開啓zookeeper”,即直接關掉之前用zkServer命令啓動的zookeeper,直接在Kafka中使用下面兩條命令:

 .\zookeeper-server-start.bat ..\..\config\zookeeper.properties



.\kafka-server-start.bat ..\..\config\server.properties

啓動zookeeper和Kafka即可。

之後啓動zookeeper和Kafka也建議這樣來啓動,即不要再在zookeeper的安裝目錄下使用zkServer來啓動zookeeper,因爲在使用zkServer啓動zookeeper後,即便在Kafka中只執行.\bin\windows\kafka-server-start.bat .\config\server.properties命令啓動Kafka,同樣會報錯,只不過不再是Address already in use。

總結:

 

 

在安裝Kafka時,直接在Kafka的bin目錄中的windows目錄下執行下面兩條命令,即可啓動Kafka:

 .\zookeeper-server-start.bat ..\..\config\zookeeper.properties



.\kafka-server-start.bat ..\..\config\server.properties
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章