Kafka在Linux下載安裝及部署

前期準備工作:

    kafka的安裝及使用需要用到ZooKeeper,所以需要提前安裝搭建好ZooKeeper

    ZooKeeper在Linux下載安裝及部署:https://blog.csdn.net/Eternal_Blue/article/details/94762494

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

kafka的安裝及部署

一、官網下載 kafka.tgz 包

我這裏安裝的版本:kafka_2.12-2.2.0.tgz

Kafka官網下載地址:http://kafka.apache.org/downloads 

或下載地址: https://mirrors.cnnic.cn/apache/kafka

二、將下載好的kafka_2.12-2.2.0.tgz包丟到服務器上任意一個你能找到的地方

三、在/usr路徑下創建一個文件夾kafka

mkdir /usr/kafka

四、解壓壓縮包到 /usr/kafka目錄下

tar -zxvf kafka_2.12-2.2.0.tgz -C /usr/kafka

五、在 /tmp 新建一個文件夾 kafka-logs

mkdir /tmp/kafka-logs

六、修改kafka的配置文件

在kafka主目錄下 bin/config文件夾中找到  server.properties 並進行修改

vim bin/config/server.properties

注意:kafka在啓動服務之前,在server.properties文件中要設定3個參數:    broker.id、log.dirs、zookeeper.connect

broker.id=0

log.dirs=/tmp/kafka-logs

zookeeper.connect=localhost:2181

delete.topic.enble=true

 delete.topic.enble=true  :這段代碼會對以後刪除kafka中的topic有影響,這段代碼在文件尾部添加上即可

listeners=PLAINTEXT://:9092 :這個命令也很重要,需要記住(這個命令在文章裏先不做分析)

七、配置kafka環境變量,配置zookeeper 和 kafka的全局命令 

    方法一:修改 profile 文件 (我使用的該方法,也推薦用這一種,兩鍾區別需自行查閱相關資料)

vim /etc/profile

    添加下面這些配置

export KAFKA_HOME=/usr/kafka/kafka_2.12-2.2.0
export PATH=KAFKA_HOME/bin:$PATH

    使配置生效

source /etc/profile

    方法二:修改 .bashrc 文件

    輸入命令修改環境變量

vim ~/.bashrc

     添加下面這些配置

export KAFKA_HOME=/usr/kafka/kafka_2.12-2.2.0
export PATH=KAFKA_HOME/bin:$PATH

     使配置生效

source ~/.bashrc

八、驗證kafka是否已經生效

    驗證環境變量是否配置成功,

echo $KAFKA_HOME

   

    驗證輸入kafka- 後按teb鍵是否會自動補全

kafka-

kafka的使用

一、啓動 Zookeeper 服務

Kafka用到了Zookeeper,,先開啓zookeeper

下面用一個單實例的Zookkeeper服務,可以在命令結尾處加個&符號,這樣就可以啓動後離開控制檯

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

二、啓動 kafka,在 kafka 的根目錄下使用命令

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

三、創建一個 topic ,在 kafka 的根目錄下使用命令

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic1

四、查看 kafka 的 topic 情況,在 kafka 的根目錄下使用命令

bin/kafka-topics.sh --list --zookeeper localhost:2181

--zookeeper  localhost:2181"是什麼意思?    

--zookeeper: kafka連接zookeeper的url,和server.properties文件中的配置項 zookeeper.connect=localhost:2181 一致

五、描述 topic,在 kafka 的根目錄下使用命令

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic1

六、刪除 topic,在 kafka 的根目錄下使用命令

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topic1

     刪除topic 補充  ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

問題:

對 topic1 進行刪除操作後,再次查看topic的時候,topic1 沒有直接刪除,而且後面出現了 “marked for deletion” ,只是將 topic1 標記了刪除

解決:(通過查閱各種解決方案,整理了下面這種解決方案)

如果沒有在kafka/config/server.properties配置:delete.topic.enable=true時,執行topic的刪除命令只是把topic標記爲marked for deletion,並不是真正的刪除,如果此時想徹底刪除,就需要登錄zookeeper客戶端進行刪除

    啓動zookeeper客戶端,在zookeeper根目錄下使用命令:

bin/zkCli.sh

    找到topic所在的目錄,在zookeeper客戶端輸入這個命令

ls /brokers/topics

      刪除需要徹底刪除的 topic1,在zookeeper客戶端輸入這個命令

deleteall /brokers/topics/topic1

rmr 命令已經被廢棄了,可以執行 deleteall 命令

    可以再次查看確認一下,在zookeeper客戶端輸入這個命令

ls /brokers/topics

在 config/server.properties 中找到log.dirs

刪除log.dirs指定的文件目錄,然後重新啓動

七、通過下面命令驗證,發現已經刪除了。在 kafka 的根目錄下使用命令

bin/kafka-topics.sh --list --zookeeper localhost:2181

八、生產消費

  生產消息,在 kafka 的根目錄下使用命令

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic1

這裏的  --broker-list localhost:9092

  進入 生產消息的編輯模式,進行編輯併發送

>hello,world
>this is my kafka

消費消息,在 kafka 的根目錄下使用命令

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning

    消費消息如下:

hello,world
this is my kafka

九、關閉服務

    先關閉Kafka,在 kafka 的根目錄下使用命令

bin/kafka-server-stop.sh

    再關閉Zookeeper,在 Zookeeper 的根目錄下使用命令

bin/zkServer.sh stop

    驗證一下是否關閉

jps:查看當前運行的進程
jps -m:查看當前運行進程的詳細信息

jps

有問題,有錯誤及時提出來,共同進步~~

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