Kafka安裝-linux

fightcrap發表於2019-04-19

Kafka安裝-linux

  1. 下載Kafka

    在Apache Kafka官網中有很多版本的Kafka可以自己選擇一個 下載地址為:kafka.apache.org/downloads.h…

    這邊選擇是目前最新版本2.2.0

    wget 'https://www-eu.apache.org/dist/kafka/2.2.0/kafka-2.2.0-src.tgz '
    複製程式碼
  2. 解壓

    安裝包下載完成後,解壓安裝包

    tar -zxvf kafka-2.2.0-src.tgz
    複製程式碼
  3. 啟動

    解壓完後可以看到kafka檔案的目錄

    kafka檔案目錄

    其中bin是命令集所在的檔案,config是基本的一些配置,log是我自己配置的。。。不用管

    KafKa啟動需要依賴zookeeper的,所以啟動前需要先啟動zookeeper。KafKa自帶了zookeeper,可以直接基於Kafka命令啟動,一般來說,不太建議用自帶的,畢竟都是在一起的,要當機就一起啦~但是對於單機應用那就沒關係了。 使用自帶的zookeeper。(當然需要安裝自己的要求編輯zookeeper的配置檔案咯,config資料夾中已經給了一份簡單的配置)

    bin/zookeeper-server-start.sh config/zookeeper.properties & 
    複製程式碼

    執行Kafka啟動命令(同樣要自己去配置Kafka配置檔案)

    bin/kafka-server-start.sh config/server.properties & 
    複製程式碼

    這邊對配置檔案就不細講了,因為太多了,推薦一篇配置檔案的部落格哈KafKa配置

    到處位置如果沒有報錯那就說明啟動成功了

  4. 測試KafKa

    啟動起來後就可以用控制檯來進行測試了,首先當然是要建立Topic了(zookeeper的預設埠是2181,這邊用了自帶的就是localhsot了。如果是其他機器的就要修改啦)

    bin/kafka-topics.sh --list --zookeeper localhost:2181
    複製程式碼

    啟動生產者

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    複製程式碼

    新開一個視窗,啟動消費者

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test
    複製程式碼

    然後在生產者傳送訊息,消費者這邊就能看到啦,所以KafKa沒有問題哦,這邊就結束了,可以開心的使用了

  5. 問題覆盤

    在安裝過程中遇到三個問題:

    1. 啟動Kafka的時候報錯:
    ERROR Error while electing or becoming leader on broker 0 (kafka.server.ZookeeperLeaderElector)
    java.net.ConnectException: Connection timed out
    複製程式碼

    這個時候說明zookeeper沒有連上需要檢視zookeeper是不是啟動了,server.properties中的zookeeper.connect是否配置錯誤

    1. 啟動消費者版本問題 在Kafka 0.90版本的時候把--zookeeper指令換了,在學習的時候查到的命令還是老的,著實被坑了不少。0.90版本後被更換為了--bootstrap-server。而且兩者含義不一樣。--zookeeper是指向zookeeper的,--bootstrap-server是指向broker的。也就是一個指向zookeeper,一個指向了kafka。
    2. KafKa啟動一會後自動關閉了。 這個問題主要是在於啟動KafKa的時候沒有用守護執行緒,把啟動命令變成如下,就好了
    ./kafka-server-start.sh  -daemon  config/server.properties  &
    複製程式碼

相關文章