kafka分佈式集羣的搭建

(1)下載安裝包

http://archive.apache.org/dist/kafka/
注意下載版本和scala要匹配

(2)解壓安裝包

tar -zxvf kafka_2.11-0.11.0.0.tgz -C /home/hadoop/apps/ 

(3)修改配置文件

cd config
vi 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=/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=mini1:2181,mini2:2181,mini3:2181

(4)配置環境變量

sudo vi /etc/profile
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile

(5)分發安裝包

scp

(6)在另外兩臺機器修改

config/server.properties
broker.id=1
broker.id=2

(7)啓動集羣

三臺機器都要啓動
bin/kafka-server-start.sh -daemon config/server.properties

(8)羣起腳本

nodes=$(cat /opt/my-shells/nodes)
# 啓動kafka集羣
for node in $nodes
do
	ssh hadoop@$node "kafka-server-start.sh -daemon /home/hadoop/apps/kafka/config/server.properties"
done
--------------------------------------------------------
# 停止kafka集羣
nodes=$(cat /opt/my-shells/nodes)
for node in $nodes
do
	ssh hadoop@$node "kafka-server-stop.sh"
done

一些配置說明:

#broker的全局唯一編號,不能重複
broker.id=0

#用來監聽鏈接的端口,producer或consumer將在此端口建立連接
port=9092

#處理網絡請求的線程數量
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=/export/servers/logs/kafka

#topic在當前broker上的分片個數
num.partitions=2

#用來恢復和清理data下數據的線程數量
num.recovery.threads.per.data.dir=1

#segment文件保留的最長時間,超時將被刪除
log.retention.hours=168

#滾動生成新的segment文件的最大時間
log.roll.hours=168

#日誌文件中每個segment的大小,默認爲1G
log.segment.bytes=1073741824

#週期性檢查文件大小的時間
log.retention.check.interval.ms=300000

#日誌清理是否打開
log.cleaner.enable=true

#broker需要使用zookeeper保存meta數據
zookeeper.connect=192.168.52.106:2181,192.168.52.107:2181,192.168.52.108:2181

#zookeeper鏈接超時時間
zookeeper.connection.timeout.ms=6000

#partion buffer中,消息的條數達到閾值,將觸發flush到磁盤
log.flush.interval.messages=10000

#消息buffer的時間,達到閾值,將觸發flush到磁盤
log.flush.interval.ms=3000

#刪除topic需要server.properties中設置delete.topic.enable=true否則只是標記刪除
delete.topic.enable=true

#此處的host.name爲本機IP(重要),如果不改,則客戶端會拋出:Producer connection to localhost:9092 unsuccessful 錯誤!
host.name=kafka01
發佈了91 篇原創文章 · 獲贊 9 · 訪問量 3682
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章