緊接著上一篇Zk集群搭建:https://blog.csdn.net/w635614017/article/details/89960255
這邊直接搭建起來Kafka集群蜗字,環(huán)境路徑啥的都寫上一篇了拴孤,可以去查看。
kafka官網(wǎng):http://kafka.apache.org/
我下載的版本是:kafka_2.11-2.1.1
1.配置
依然是解壓縮到我的目錄下 /opt/soft
然后進入到kafka的配置文件里面,vim /opt/soft/kafka_2.11-2.1.1/config/server.properties
這文件挺長,但是已經(jīng)經(jīng)受了hive配置文件洗禮的我毫不畏懼
############################# Server Basics #############################
# 機器在集群里面的標識,和zk的myid一個意思
broker.id=0
# kafka對外提供服務(wù)的端口,默認是9092
port=9092
# DNS
host.name=192.168.20.3
############################# Socket Server Settings #############################
# borker網(wǎng)絡(luò)處理的線程數(shù)
num.network.threads=3
# borker做I/O處理的線程數(shù)
num.io.threads=8
# 發(fā)送緩沖區(qū)大杏厍蟆:數(shù)據(jù)要先達到緩沖區(qū),在緩沖區(qū)體積達到設(shè)置后再發(fā)送晃跺,性能相關(guān)揩局,這邊默認了
socket.send.buffer.bytes=102400
# 接收緩沖區(qū)大小:主要是緩沖一定量之后哼审,序列化到磁盤谐腰,默認了
socket.receive.buffer.bytes=102400
# kafka接收和發(fā)送 請求的最大請求數(shù)孕豹,默認了涩盾,這個值不能超過jvm堆棧
socket.request.max.bytes=104857600
############################# Log Basics #############################
# 消息存放的目錄,這個目錄可以配置為“励背,”逗號分割的表達式春霍。注意!上面的num.io.threads要大于這個目錄的個數(shù),如果配了多個目錄叶眉,topic消息持久化的位置為:當前以逗號分割的目錄中址儒,哪個分區(qū)數(shù)最少,就放在哪一個衅疙,這個可以自定義莲趣。
log.dirs=/tmp/kafka-logs
# 默認分區(qū)數(shù),一個topic默認1個分區(qū)饱溢,默認了
num.partitions=1
num.recovery.threads.per.data.dir=1
############################# Internal Topic Settings #############################
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
############################# Log Flush Policy #############################
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
############################# Zookeeper #############################
# 默認消息的最大持久化時間喧伞,168小時,是7天
log.retention.hours=168
# topic的分區(qū)是以一堆segment文件存儲的绩郎,這個控制每個segment的大小潘鲫,會被topic創(chuàng)建時的指定參數(shù)覆蓋
log.segment.bytes=1073741824
# 文件大小檢查的周期時間,是否處罰 log.cleanup.policy中設(shè)置的策略
log.retention.check.interval.ms=300000
# 消息體的最大值 5M
message.max.byte=5242880
# 1是不備份肋杖。配置為2溉仑,表示除了leader節(jié)點,對于topic里的每一個partition状植,都會有一個額外的備份浊竟。
default.replication.factor=2
# 默認是1M怨喘,取消息,最多取多少振定,這個容易有坑!
replica.fetch.max.bytes=5242880
############################# Zookeeper #############################
# zk集群地址哲思,逗號分隔
zookeeper.connect=Master:2181,Slave:2181,Slave2:2181
# zk的連接超時時間
zookeeper.connection.timeout.ms=6000
############################# Group Coordinator Settings #############################
# 這個參數(shù)的主要效果就是讓coordinator推遲空消費組接收到成員加入請求后本應(yīng)立即開啟的rebalance
group.initial.rebalance.delay.ms=0
關(guān)于replica.fetch.max.bytes 解釋網(wǎng)上有一篇:
https://blog.csdn.net/guoyuqi0554/article/details/48630907
關(guān)于 default.replication.factor 解釋網(wǎng)上有一篇:
http://www.reibang.com/p/082baf0ebce5
關(guān)于group.initial.rebalance.delay.ms 解釋網(wǎng)上有一篇:https://www.cnblogs.com/huxi2b/p/6815797.html
都說的很好!
太多了吩案,不一一寫下去了棚赔,可以去官方看∨枪基本上都是默認的靠益,這里說一下要改的東西。
# 不多說残揉,自己配胧后,別重復(fù)就行
broker.id=0
# 不解釋
host.name=Master
# 增加
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
# 設(shè)置zookeeper的連接端口
zookeeper.connect=Master:2181,Slave1:2181,Slave2:2181
分別去修改,注意我只是寫了Master上的抱环,其他Slave1和Salve2的不同壳快,這里不贅述了。
2.啟動
去kafka目錄下镇草。
執(zhí)行指令:
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
當然如果想看日志信息:
nohup bin/kafka-server-start.sh config/server.properties &
然后jps
看到kafka證明啟動了眶痰,我們試一下是否搭建起集群。
3.驗證
我們用Master創(chuàng)建一個topic:
bin/kafka-topics.sh --create --topic test --zookeeper Master:2181 --partitions 2 --replication-factor 1
解釋一下下:
- create是創(chuàng)建
- Zookeeper 是zk集群
- replication-factor 是復(fù)制幾份梯啤,這邊1份
- partitions 創(chuàng)建幾個分區(qū)
- topic 主題的名稱
執(zhí)行之后打印出了:
Created topic "test".
證明成功創(chuàng)建主題了竖伯!我們?nèi)チ硗庖慌_機器Slave1
執(zhí)行
bin/kafka-topics.sh --zookeeper Slave1:2181 --list
打印出來 test
去Slave2執(zhí)行
bin/kafka-topics.sh --zookeeper Slave2:2181 --list
也打印出 test
Master也有,那么證明已經(jīng)搭建成功了R蛴睢F哂ぁ!
接下來大家可以自己玩指令除了上面的還有:
消費者:
bin/kafka-console-consumer.sh --bootstrap-server Master:9092 --topic test
生產(chǎn)者:
bin/kafka-console-producer.sh --broker-list Master:9092 --topic test
可以Master開個消費者察滑,然后Slave1和Slave2生產(chǎn)消息打厘。
或者Master當生產(chǎn)者,Slave1和Slave2接受消息贺辰,發(fā)現(xiàn)都能接收到户盯,數(shù)據(jù)可以同步,證明集群搭建成功;曜ΑO认稀!