(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