前提
在啟動kafaka集群,呼叫 bin/kafka-server-start.sh config/server.properties & 前,需要把每台機器上zookeeper服務都給啟動了。
zookeeper的安裝配置看,
1 kafka集群規劃
s101 s102 s103 s104
zk zk zk zk
kafka kafka kafka kafka
2 kafka集群部署
1)解壓安裝包
tar -zxvf kafka_2.11-0.11.0.0.tgz -c /soft
2)修改解壓後的檔名稱,建立軟鏈結
cd /soft
ln -s kafka_2.11-0.11.0.0 kafka
3)在/soft/kafka目錄下建立logs資料夾
mkdir logs
4)修改配置檔案
cd /soft/kafaka/config/
vim server.properties
檔案內容(紅色字型部分是要修改的部分,黑色字型是檔案預設的內容):
#broker的全域性唯一編號,不能重複
broker.id=0
#刪除topic功能使能
delete.topic.enable=true
#處理網路請求的執行緒數量
num.network.threads=3
#用來處理磁碟io的現成數量
num.io.threads=8
#傳送套接字的緩衝區大小
socket.send.buffer.bytes=102400
#接收套接字的緩衝區大小
socket.receive.buffer.bytes=102400
#請求套接字的緩衝區大小
socket.request.max.bytes=104857600
#kafka執行日誌存放的路徑
log.dirs=/soft/kafka/logs
#topic在當前broker上的分割槽個數
num.partitions=1
#用來恢復和清理data下資料的執行緒數量
num.recovery.threads.per.data.dir=1
#segment檔案保留的最長時間,超時將被刪除
log.retention.hours=168
#配置連線zookeeper集群位址
zookeeper.connect=s101:2181,s102:2181,s103:2181,s104:2181
5)配置環境變數
sudo vim /etc/profile
追加內容
#kafka_home
export kafka_home=/soft/kafka
export path=$path:$kafka_home/bin
退出後source,使環境變數生效
source /etc/profile
6)分發安裝包
cd /soft
scp -r kafka/ centos@s102:/soft
scp -r kafka/ centos@s103:/soft
scp -r kafka/ centos@s104:/soft
注意,分發後,還得配置其他機器的換進變數,看5)
7)分別在s102、s103、s104上修改配置檔案/soft/kafka/config/server.properties中的broker.id=2、broker.id=3、broker.id=4
注:broker.id不能重複
8)啟動集群
依次在s101、s102、s103、s104節點上啟動kafka
[centos@s101 kafka]$ bin/kafka-server-start.sh config/server.properties &
[centos@s102 kafka]$ bin/kafka-server-start.sh config/server.properties &
[centos@s103 kafka]$ bin/kafka-server-start.sh config/server.properties &
[centos@s104 kafka]$ bin/kafka-server-start.sh config/server.properties &
備註:1.在群起kafka伺服器前,先把zookeeper集群給啟動的,具體看開篇的前提提示,否則的話,啟動kafka時,會拋異常日誌
2.server.properties 中的zookeeper機器的埠號是2181,不是zookeep集群配置zoo.cfg中集群配置的埠2888
9)關閉集群
[centos@s101 kafka]$ bin/kafka-server-stop.sh stop
[centos@s102 kafka]$ bin/kafka-server-stop.sh stop
[centos@s103 kafka]$ bin/kafka-server-stop.sh stop
[centos@s104 kafka]$ bin/kafka-server-stop.sh stop
2.3 kafka命令列操作
1)檢視當前伺服器中的所有topic
[centos@s101 kafka]$ bin/kafka-topics.sh --zookeeper s101:2181 --list
2)建立topic
[centos@s101 kafka]$ bin/kafka-topics.sh --zookeeper s101:2181 \
--create --replication-factor 3 --partitions 1 --topic first
選項說明:
--topic 定義topic名
--replication-factor 定義副本數
--partitions 定義分割槽數
備註,登入其他機器也能檢視狀態
3)刪除topic
[centos@s101 kafka]$ bin/kafka-topics.sh --zookeeper s101:2181 \
--delete --topic first
需要server.properties中設定delete.topic.enable=true否則只是標記刪除或者直接重啟。
4)傳送訊息
[centos@s101 kafka]$ bin/kafka-console-producer.sh \
--broker-list s101:9092 --topic first
>hello world
>hi hi
5)消費訊息
[centos@s101 kafka]$ bin/kafka-console-consumer.sh \
--zookeeper s101:2181 --from-beginning --topic first
--from-beginning:會把first主題中以往所有的資料都讀取出來。根據業務場景選擇是否增加該配置。
6)檢視某個topic的詳情
[centos@s101 kafka]$ bin/kafka-topics.sh --zookeeper s101:2181 \
--describe --topic first
Kafka 集群部署
kafka是乙個分布式訊息佇列,需要依賴zookeeper,請先安裝好zk集群 kafka安裝包解壓 tar xf kafka 2.10 0.9.0.1 tgz mv kafka 2.10 0.9.0.1 usr kafka cd usr kafka 配置檔案 server.properties t...
kafka集群部署
一台伺服器上可以啟動多個broker例項,或者將broker部署到多台伺服器上,以下以172.16.50.21集群為例,多台伺服器上部署broker。tar xzf kafka 2.11 1.0.0.tgz cd kafka 2.11 1.0.0kafka依賴zookeeper,如果環境中沒有zoo...
kafka集群部署
前提 kafka集群依賴於zk集群,沒有zk集群環境的請先參考 假設搭建3個節點的kafka集群,下面是步驟 如果只是安裝,直接down kafka 2.12 0.11.0.0.tgz 即可。二 解壓 假設 kafka home為解壓後的根目錄,將tag包解壓到該目錄下 3臺機器上都解壓 三 修改 ...