下載並解壓kafka
(前提是安裝並配置好jdk環境變量,原因是kafka依賴於zookeeper,而zookeeper使用java編寫,kafka使用scala編寫都需要JVM運行環境)
kafka下載地址:http://kafka.apache.org/downloads
zookeeper下載地址:https://zookeeper.apache.org/releases.html
注:自己是存放在/usr/local目錄下
使用自帶的簡版zookeeper搭建zookeeper集羣
(也可使用自己下載的zookeeper搭建zookeeper及集羣)
注:讀者可以把 kafka文件夾複製多份來分別修改zookeeper.properties並運行各自的zookeeper或者僅把kafka文件夾中的zookeeper.properties複製多份使用同一個zookeeper-server-start.sh+不同的配置文件來啓動多個zookeeper
在這裏爲了方便使用第二種方式
1. 修改zookeeper.properties文件
clientPort=2181
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-1
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-1
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 處理zookeeper日誌,24小時清理一次
autopurge.purgeInterval=24
# 日誌文件個數
autopurge.snapRetainCount=3
2. 修改zookeeper2.properties文件
clientPort=2182
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-2
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-2
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 處理zookeeper日誌,24小時清理一次
autopurge.purgeInterval=24
# 日誌文件個數
autopurge.snapRetainCount=3
3. 修改zookeeper3.properties文件
clientPort=2183
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-3
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-3
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 處理zookeeper日誌,24小時清理一次
autopurge.purgeInterval=24
# 日誌文件個數
autopurge.snapRetainCount=3
- 在dataDir中創建myid文件並寫入對應server後的數字(1-255)
- 啓動zookeeper
cd /usr/local/kafka_2.13-2.6.0
./bin/zookeeper-server-start.sh -daemon config/zookeeper1.properties
其他兩個同樣方式啓動(-daemon以守護線程運行)
搭建kafka集羣
複製兩份server.properties並修改內容
1.修改server.properties
broker.id=0
listeners=PLAINTEXT://ljq:9092
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-0
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
log.retention.hours=168
2.修改server1.properties
broker.id=1
listeners=PLAINTEXT://ljq:9093
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-1
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
2.修改server2.properties
broker.id=2
listeners=PLAINTEXT://ljq:9094
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-2
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
3.啓動kafka
cd /usr/local/kafka_2.13-2.6.0
./bin/kafka-server-start.sh -daemon config/server.properties
其它兩個同樣方式啓動(-daemon以守護線程運行)
4.創建話題
./bin/kafka-topics.sh --create --topic first --bootstrap-server ljq:9092,ljq:9093,ljq:9094 --partitions 3 --replication-factor 3
5.查看話題詳細信息
./bin/kafka-topics.sh --describe --bootstrap-server ljq:9092 --topic first
6.啓動生產者
./bin/kafka-console-producer.sh --bootstrap-server ljq:9092,ljq:9093 --topic first
7.啓動消費者
./kafka-console-consumer.sh --bootstrap-server ljq:9093 --topic first --from-beginning