kafka集群部署


前提:
kafka集群依賴於zk集群,沒有zk集群環境的請先參考 http://www.cnblogs.com/yjmyzz/p/4587663.html .

(注:kafka完整的下載包里,也自帶了zk,修改 kafka/config/zookeeper.properties ,並設置好myid文件,kafka/bin/zookeeper-server-start.sh ../config/zookeeper.properties 也可以啟動zk集群)

 

假設搭建3個節點的kafka集群,下面是步驟:

 一、下載

http://kafka.apache.org/downloads ,如果只是安裝,直接down kafka_2.12-0.11.0.0.tgz 即可。

二、解壓

假設$KAFKA_HOME為解壓后的根目錄,將tag包解壓到該目錄下(3台機器上都解壓)

三、修改$KAFKA_HOME/config/service.properties

內容參考下面:

 1 broker.id=1 #類似zk的myid一樣,每個節點上的id都要唯一
 2 host.name=192.168.29.60 #每個節點對應的機器IP
 3 num.network.threads=3
 4 num.io.threads=8
 5 socket.send.buffer.bytes=102400
 6 socket.receive.buffer.bytes=102400
 7 socket.request.max.bytes=104857600
 8 log.dirs=/data/application/kafka/data #日志保存目錄
 9 num.partitions=1
10 num.recovery.threads.per.data.dir=1
11 offsets.topic.replication.factor=1
12 transaction.state.log.replication.factor=1
13 transaction.state.log.min.isr=1
14 log.retention.hours=168
15 message.max.byte=5242880
16 default.replication.factor=2
17 replica.fetch.max.bytes=5242880
18 log.segment.bytes=1073741824
19 log.retention.check.interval.ms=300000
20 zookeeper.connect=192.168.29.11:2181,192.168.29.12:2181,192.168.29.13:2181 #zk集群的地址
21 zookeeper.connection.timeout.ms=6000
22 group.initial.rebalance.delay.ms=0

注:每台機器上都要修改這個文件,而且broker.id,host.name這二個很關鍵,弄錯了將啟動失敗。

默認情況下,日志沒有打開自動清理策略,運行時間久了,會把磁盤占滿,注意14行,可以改成

log.cleanup.policy=delete
log.retention.hours=6

這樣日志,只會保留最近6小時。日志路徑如果需要修改,可以修改 bin/kafka-run-class.sh (參考下面)

if [ "x$LOG_DIR" = "x" ]; then
  LOG_DIR="/var/log/kafka/"
fi

  

四、啟動

$KAFKA_HOME/bin/kafka-server-start.sh -daemon ../config/server.properties

(3台節點都要啟動)

注:初次啟動,可不加用-daemon參數,方便直接在控制台查看輸出,啟動成功后,可ctrl+C結束掉,再加-daemon后台啟動。

如果希望調整一些jvm啟動參數,比如:占用內存啥的,可以直接修改kafka-server-start.sh(參考下面)

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"
fi

   

五、驗證

5.1 創建topic

$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper 192.168.29.11:2181 --replication-factor 2 --partitions 1 --topic mytopic

5.2 測試消息發布

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list 192.168.29.60:9092 --topic mytopic

這個命令會進入一個>提示符的終端,直接輸入消息內容,回車就發出去了。

5.3 測試消息接收
保持5.2的窗口不要關,再加一個終端窗口

$KAFKA_HOME/bin/kafka-console-consumer.sh --zookeeper 192.168.29.11:2181 --topic mytopic --from-beginning

在剛才5.2的窗口里,輸入些內容,順利的話,消息接收窗口里,就能收到消息。

 

參考文章:

http://kafka.apache.org/documentation/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM