天天看點

kafka0.7在linux上的單點及叢集環境搭建與配置

IT業的小白,最近用了消息對了,研究了下kafka,并且研究了在kafka基礎上進行了二次開發的淘寶rocketMQ,打算寫下安裝與配置環境,和初級demo。有用過的大家一起交流。這個過程參考了frankHui部落格裡的的安裝配置過程。

kafka0.8版本比0.7版本增加了一些功能,先說下0.7版本的單點搭建和配置。

kafka的搭建需要zookeeper的支援,是以如果你的伺服器還沒有安裝zookeeper,請先安裝。

1.去apache官網把kafka7.0版本down下來。這個過程就不詳細說了,百度下kafka就能找到下載下傳位址。将下載下傳下來的kafka上傳到linux上,并解壓。

指令tar -zxvf 檔案名。

2. 接下來就是下載下傳kafka的依賴包和建構kafka的環境。注意,這一步需要伺服器可以上網。具體指令就是在kafka解壓後的一級目錄下,執行兩個指令,分别是

指令 ./sbt update

指令 ./sbt package。

上面的步驟都執行完了,環境算是好了,下面我們要測試下是否能成功運作kafka:

3.啟動zookeeper server:

./bin/zookeeper-server start.sh ../config/zookeeper.properties &

(用&是為了能退出指令行)

4.啟動kafka server:

./bin/kafka-server-start.sh ../config/server.properties &

5. Kafka為我們提供了一個console來做連通性測試,下面我們先運作producer:

./bin/kafka-console-producer.sh --zookeeper localhost:2181 --topic test

這是相當于開啟了一個producer的指令行。指令行的參數我們一會兒再解釋。

6.接下來運作consumer,新啟一個terminal:

./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

7.執行完consumer的指令後,你可以在producer的terminal中輸入資訊,馬上在consumer的terminal中就會出現你輸的資訊。有點兒像一個通信用戶端。

如果你能看到7執行了,說明你單機版部署成功了。下面解釋下兩條指令中參數的意思。--zookeeper localhost:2181 這個說明了去連本機2181端口的zookeeper server,--topic test,在kafka裡,消息按topic來區分,我們這裡的topic叫test,是以不管是consumer還是producer都指向了test。

這樣kafka7.0的單點安裝已經結束。叢集安裝和單點相似。具體過程如下:

我們還是按照那kafka單點配置的幾個步驟來做。我們假設server1的IP是192.168.10.11 server2的IP是192.168.10.10:

1.在server1上啟動zookeeper server :

./bin/zookeeper-server-start.sh ../config/zookeeper.properties &

(用&是為了能退出指令行)

2.在server2上啟動kafka服務:

./ bin/kafka-server-start.sh ../config/server.properties &

3.修改kafka配置檔案在server1上找到kafka的config目錄,目前本機的目錄位址為:/application/search/kafkatest/kafka-0.7.2-incubating-src/config。找到server.properties檔案,找到一行“hostname=“。

在等号後邊加上啟動了KAFKA服務的機器的ip,即192.168.10.11

4.server1上啟動producer服務

./bin/kafka-console-producer.sh --zookeeper 192.168.10.11:2181 --topic test

5.運作consumer,

在server1上啟動一個consumer

./ bin/kafka-console-consumer.sh --zookeeper 192.168.10.11:2181 --topic test --from-beginning

在server2啟動一個consumer

./ bin/kafka-console-consumer.sh --zookeeper 192.168.10.11:2181 --topic test --from-beginning

6.運作完consumer的指令後,你可以在producer的terminal中輸入資訊,馬上在兩個consumer的terminal中就會出現你輸的資訊。

繼續閱讀