Kafka集羣的安裝和部署

服務器準備

VMware Workstation Pro 15.5

Centos6.5 64bit

版本選擇:Kafka_2.11-0.11.0.0

集羣規劃

node1 node2 node3
kafka kafka kafka
zookeeper zookeeper zookeeper

集羣部署

# 解壓安裝包
tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module
# 在kafka根目錄下新建logs文件夾
mkdir logs
# 配置環境變量
vim /etc/profile
# 添加以下內容
export KAFKA_HOME = /opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# 生效環境文件
source /etc/profile
# 修改配置文件
vim config/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數據存放的路徑***(注意:該文件夾不是日誌文件夾,日誌文件夾logs會在kafka根目錄下自動創建)
log.dirs=/opt/module/kafka/data
log.dirs=/opt/module/kafka/logs 
# topic 在當前 broker 上的分區個數 
num.partitions=1 
# 用來恢復和清理 data 下數據的線程數量 
num.recovery.threads.per.data.dir=1 
# segment 文件保留的最長時間,超時將被刪除 
log.retention.hours=168 
# ***配置連接 Zookeeper 集羣地址***
zookeeper.connect=node1:2181,node2:2181,node3:2181

分發文件

# 向集羣上的每臺機器發送kafka
scp -r /opt/module/kafka node2:/opt/module
scp -r /opt/module/kafka node3:/opt/module
# 發送後需要在其他機器上配置環境變量,和server.properties文件,修改broker.id爲1和2

啓動集羣

# 需要先啓動zookeeper集羣
zkSever.sh start
# 分別在每臺機器上指定配置文件,啓動kafka(-daemon將該進程轉移至後臺)
bin/kafka-server.sh -daemon config/server.properties

關閉集羣

# 關閉時不需要指定配置文件,也需要在每臺機器上都執行
bin/kafka-server.sh stop

簡單的命令行操作

# 列出所有topic
bin/kafka-topics.sh --zookeeper node1:2181 --list
# 添加topic,並配置分區數爲3,副本數爲2(如果沒有配置topic刪除功能,則只是標記刪除)
bin/kafka-topics.sh --zookeeper node1:2181 --create --topic first --partitions 3 --replication-factor 2
# 查看topic的詳細信息
bin/kafka-topics.sh --zookeeper node1:2181 --describe --topic first
# 刪除topic
bin/kafka-topics.sh --zookeeper node1:2181 --delete --topic first
# 生產者producer測試
bin/kafka-console-producer.sh --topic first --broker-list node1:9092
# 消費者consumer測試(offset保存在zookeeper)
bin/kafka-console-consumer.sh --topic first --zookeeper node1:2181
# 消費者consumer測試(offset保存在kafka本地)
bin/kafka-console-consumer.sh --topic first --bootstrap-server node1:9092
# 加上參數--from-beginning表示從頭讀起
bin/kafka-console-consumer.sh --topic first --bootstrap-server node1:9092 --from-beginning

一些問題

  1. 使用 kafka-server.sh stop 無法關閉kafka服務

    解決方案:修改 kafka-server.sh 文件

    # 將以下內容
    PIDS=$(ps ax | grep -i 'kafka.Kafka' | grep java | grep -v grep | awk '{print $1}')
    # 修改爲
    PIDS=$(jps -lm | grep -i 'kafka.Kafka'| awk '{print $1}')
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章