kafka學習(一) 基本的安裝與使用

2021-10-21 01:27:46 字數 3986 閱讀 4269

kafka是乙個分布式流處理平台,不只是訊息佇列,kafka是apache的乙個頂級專案。

linkedin基於scalar編寫的乙個流處理平台,大資料平台對資料處理的時效性提出了更高的要求——最後開發了乙個基於zookeeper的分布式訊息系統——kafka。

kafka具有高吞吐量,高效能,實時以及高可用等特點,這些特點是訊息中介軟體暫時不具備的。

個人建議在linux的環境下進行安裝和學習kafka

wget
然後解壓,進入到指定目錄

tar -xzf kafka_2.13-2.7.0.tgz

cd kafka_2.13-2.7.0

進入之後,會看到如下目錄

drwxr-xr-x. 3 root root  4096 12月 16 22:03 bin

drwxr-xr-x. 2 root root 4096 12月 16 22:03 config

drwxr-xr-x. 2 root root 8192 2月 20 20:06 libs

-rw-r--r--. 1 root root 29975 12月 16 21:58 license

-rw-r--r--. 1 root root 337 12月 16 21:58 notice

drwxr-xr-x. 2 root root 44 12月 16 22:03 site-docs

進入到kafka中的config資料夾

其中有如下配置檔案

-rw-r--r--. 1 root root  906 12月 16 21:58 connect-console-sink.properties

-rw-r--r--. 1 root root 909 12月 16 21:58 connect-console-source.properties

-rw-r--r--. 1 root root 5321 12月 16 21:58 connect-distributed.properties

-rw-r--r--. 1 root root 883 12月 16 21:58 connect-file-sink.properties

-rw-r--r--. 1 root root 881 12月 16 21:58 connect-file-source.properties

-rw-r--r--. 1 root root 2247 12月 16 21:58 connect-log4j.properties

-rw-r--r--. 1 root root 2540 12月 16 21:58 connect-mirror-maker.properties

-rw-r--r--. 1 root root 2262 12月 16 21:58 connect-standalone.properties

-rw-r--r--. 1 root root 1221 12月 16 21:58 consumer.properties

-rw-r--r--. 1 root root 4674 12月 16 21:58 log4j.properties

-rw-r--r--. 1 root root 1925 12月 16 21:58 producer.properties

-rw-r--r--. 1 root root 6849 12月 16 21:58 server.properties

-rw-r--r--. 1 root root 1032 12月 16 21:58 tools-log4j.properties

-rw-r--r--. 1 root root 1169 12月 16 21:58 trogdor.conf

-rw-r--r--. 1 root root 1205 12月 16 21:58 zookeeper.properties

我們主要需要修改的是server.properties檔案

需要修改的配置項有如下幾個(其中的ipaddress,可以就是設定為對應的ip位址,如果是本機學習也不建議設定為localhost)

# 監聽的位址(現在暫時不用知道這個是做什麼的,ipaddress配置成本機ip即可)

listeners = plaintext://ipaddress:9092

advertised.listeners = plaintext://ipaddress:9092

##日誌檔案的目錄位址

log.dirs = /kafka/logs/

## zookeeper的配置,ipaddress配置成zookeeper伺服器所在的位址即可,如果有多個,逗號隔開即可。

zookeeper.connect=ipaddress:2181

zookeeper.connecion.timeout.ms=6000

直接執行如下命令,後台啟動kafka

bin/kafka-server-start.sh ../config/server.properties &
看到如下一行,可以判斷啟動成功

info [kafkaserver id=0] started (kafka.server.kafkaserver)
進入到kafka的bin目錄下執行停止指令碼即可

sh kafka-server-stop.sh
看到如下日誌說明kafka已經停止

[2021-02-27 17:38:55,546] info [kafkaserver id=0] shut down completed (kafka.server.kafkaserver)
基本的使用,只是簡單通過kafka傳送和接受乙個訊息的簡單例項。在總結這個例項之前,先熟悉幾個概念

topic:乙個虛擬的概念,由1到多個partitions組成。先簡單理解——用於暫存訊息的地方,有點類似於rabbitmq中的exchange的概念

partitions:實際訊息儲存單位,有點類似於rabbitmq中的queue的概念。

producer:訊息的生產者,將訊息推送到topic中

consumer:訊息的消費者,將會去topic中取訊息

進入到kafka的bin目錄,執行如下指令碼命令

sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_name
上面的topic_name就是建立的topic名稱。

同樣在bin目錄下,執行如下命令即可。

sh kafka-topics.sh --list --zookeeper localhost:2181
[root@localhost bin]

# sh kafka-topics.sh --list --zookeeper localhost:2181

helloworld_topic

我們這裡建立了乙個名為helloworld_topic的topic

在bin目錄下執行如下命令

sh kafka-console-producer.sh --broker-list 192.168.0.110:9092 --topic helloworld_topic
出現左箭頭的時候,表示連線到kafka的對應topic,然後隨便輸入幾個訊息即可。

同樣在bin目錄下執行如下命令指令碼

sh kafka-console-consumer.sh --bootstrap-server 192.168.0.110:9092 --topic helloworld_topic --from-beginning
可以獲取指定topic中的訊息

kafka簡單的安裝使用入門總結。

KaFka 安裝與基本使用

學了有一段時間的大資料了,學習新的元件,大部分安裝可以分為三步 上傳解壓,配置檔案,啟動。分享一下我的kafka安裝包 1 上傳解壓 2 進入到 usr local soft kafka 2.10 0.8.2.2 config 目錄下,修改server.properties檔案 3 因為kafka是...

Kafka的安裝與使用

kafka是乙個分布式的訊息佇列,一般在整個系統中起到解耦,削峰,非同步處理的作用。整個系統分為消費者和生產者,生產者往裡面寫入資料,消費者取出資料進行邏輯處理。其實zookeeper就是乙個服務註冊和發現中心。kafka使用zookeeper來進行動態的集群擴充套件,不需要修改客戶端的配置。在開啟...

pyenv virtualenv 的安裝與使用

1 安裝pyenv 建立安裝目錄 mkdir pyenvgit clone pyenv git clone pyenv plugins pyenv virtualenvecho export pyenv root home pyenv bash profile echo export path py...