kafka三節(jié)點集群搭建

虛擬機VMware? Workstation 16 Pro(VMware-16.0.0 build-16894299)上安裝了三個centos7的節(jié)點,IP地址分別為:
192.168.28.128、192.168.28.129、192.168.28.130。
利用xshell訪問三個centos節(jié)點,啟動發(fā)送鍵盤到所有會話 ,即可同時對三個節(jié)點進行操作。

zookeeper集群安裝
下載zookeeper安裝包:
cd /usr/opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.8.tar.gz
tar xf apache-zookeeper-3.5.8-bin.tar.gz -C /usr/local
配置zookeeper:
cd /usr/local
#軟鏈接
ln -sv apache-zookeeper-3.5.8-bin zookeeper

cd /zookeeper/conf/
cp  zoo_sample.cfg  zoo.cfg

vim zoo.cfg
#客戶端與服務(wù)器或者服務(wù)器與服務(wù)器之間每個tickTime時間就會發(fā)送一次心跳。通過心跳不僅能夠用來監(jiān)聽機器的工作狀態(tài),還可以通過心跳來控制Flower跟Leader的通信時間,默認(rèn)2秒
tickTime=2000

initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data/data
dataLogDir=/data/zookeeper/data/log
clientPort=2181
server.1=172.16.150.154:2888:3888
server.2=172.16.150.155:2888:3888
server.3=172.16.150.156:2888:3888
分別在在192.168.28.128~130上執(zhí)行:
mkdir -p /data/zookeeper/data/data
mkdir -p /data/zookeeper/data/log

在192.168.28.128上執(zhí)行:
echo "1" > /data/zookeeper/data/data/myid
在192.168.28.129上執(zhí)行:
echo "2" > /data/zookeeper/data/data/myid
在192.168.28.130上執(zhí)行:
echo "3" > /data/zookeeper/data/data/myid

#######啟動zookeeper并查看日志:

分別在在192.168.28.128~130上執(zhí)行:
cd /usr/local/zookeeper/bin && ./zkServer.sh start
tail /usr/local/zookeeper/logs/zookeeper-root-server-localhost.localdomain.out
驗證zookeeper集群訪問:
分別在在192.168.28.128~130上執(zhí)行:
netstat -nlpt | grep -E "2181|2888|3888"
分別在在192.168.28.128~130上執(zhí)行:
./zkCli.sh  -server 192.168.28.128:2181
./zkCli.sh  -server 192.168.28.129:2181
./zkCli.sh  -server 192.168.28.130:2181
kafka集群安裝
下載kafka安裝包:
cd /usr/opt
wget https://mirror.bit.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz
tar xf kafka_2.13-2.7.0.tgz -C /usr/local
配置kafka集群:
cd /usr/local
ln -sv kafka_2.13-2.7.0 kafka
cd kafka/config/
cp server.properties server.properties-bak
grep "^[a-Z]" server.properties
vi server.properties
broker.id=1  #唯一
listeners=PLAINTEXT://192.168.28.128:9092  #修改為本機地址
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data/log
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.28.128:2181,192.168.28.129:2181,192.168.28.130:2181  #zokeeper集群地址,以","為分割
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
其他節(jié)點192.168.28.129、192.168.28.130配置相同,除了以下內(nèi)容
#192.168.28.129
broker.id=2
listeners=PLAINTEXT://192.168.28.129:9092  #修改為本機地址
#192.168.28.130
broker.id=3
listeners=PLAINTEXT://192.168.28.130:9092  #修改為本機地址
啟動kafka集群:
./bin/kafka-server-start.sh -daemon  config/server.properties
啟動報錯:
[2021-01-10 16:08:35,982] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
    at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:262)
    at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:119)
    at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1881)
    at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:441)
    at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:466)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:233)
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
    at kafka.Kafka$.main(Kafka.scala:82)
    at kafka.Kafka.main(Kafka.scala)
原因:zookeeper.connection.timeout.ms的值太短了,調(diào)大了server.properties文件里的超時時間就可以了
登錄zookeeper驗證,驗證服務(wù)是否正常
cd /usr/local/zookeeper/bin
./zkCli.sh -server 192.168.28.128
get  /brokers/ids/1

{"features":{},"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://192.168.28.128:9092"],"jmx_port":-1,"port":9092,"host":"192.168.28.128","version":5,"timestamp":"1610264776275"}

get  /brokers/ids/2

{"features":{},"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://192.168.28.129:9092"],"jmx_port":-1,"port":9092,"host":"192.168.28.129","version":5,"timestamp":"1610280011339"}

get  /brokers/ids/3

{"features":{},"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://192.168.28.129:9092"],"jmx_port":-1,"port":9092,"host":"192.168.28.129","version":5,"timestamp":"1610280011339"}

創(chuàng)建topic驗證,驗證服務(wù)是否正常
./kafka-topics.sh --create --zookeeper 192.168.28.128:2181 --replication-factor 1 --partitions 1 --topic love
創(chuàng)建主題報錯:
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Error while executing topic command : Replication factor: 1 larger than available brokers: 0.
[2021-01-10 15:17:45,154] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.
 (kafka.admin.TopicCommand$)
原因:kafka集群中的兩個節(jié)點服務(wù)因為連接zookeeper集群服務(wù)超時導(dǎo)致服務(wù)沒有變動起來。
--創(chuàng)建主題
./kafka-topics.sh --create --zookeeper 192.168.28.128:2181 --replication-factor 1 --partitions 1 --topic love
--生產(chǎn)者給該主題發(fā)了個消息
./kafka-console-producer.sh --broker-list 192.168.28.128:9092 --topic love
--消費者收到了消息
./kafka-console-consumer.sh --bootstrap-server 192.168.28.129:9092 --topic love --from-beginning
--消費者收到了消息
./kafka-console-consumer.sh --bootstrap-server 192.168.28.130:9092 --topic love --from-beginning

參考手冊:https://www.cnblogs.com/panwenbin-logs/p/10369402.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 本篇文章主要介紹在CentOS 7環(huán)境下搭建zk和kafka集群,先默認(rèn)你已經(jīng)安裝好zookeeper和kafka...
    leisurexi閱讀 1,014評論 0 1
  • 從本章開始我們來介紹一個kafka集群逐步建立的過程; 集群中只有一臺broker; topic的創(chuàng)建; 增加多臺...
    掃帚的影子閱讀 2,243評論 2 5
  • Kafka在 property file format 使用鍵值對作為配置。這些值無論來自文件還是以編程的方式,都...
    悠揚前奏閱讀 1,018評論 0 0
  • 名詞解釋 Broker Kafka集群包含一個或多個服務(wù)器,這種服務(wù)器被稱為broker。 Topic 每條發(fā)布到...
    orisonchan閱讀 380評論 0 0

友情鏈接更多精彩內(nèi)容