在CentOS上搭建Kafka集群需要以下幾個步驟:
sudo yum install java-1.8.0-openjdk-devel
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
在所有節點上執行以下命令下載并解壓Kafka:
wget https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar -xzf kafka_2.13-3.2.0.tgz
cd kafka_2.13-3.2.0
在每個節點上進行配置。假設我們有三個節點:broker1
, broker2
, broker3
。
編輯config/server.properties
文件:
# Broker ID, unique for each broker
broker.id=1 # 在broker2上改為2,在broker3上改為3
# List of directories where log data will be stored.
log.dirs=/tmp/kafka-logs
# Zookeeper connection string
zookeeper.connect=broker1:2181,broker2:2181,broker3:2181
# List of Zookeeper quorum servers
zookeeper.connection.timeout.ms=6000
# Number of partitions for each topic
num.partitions=1
# Default number of log partitions per topic
default.replication.factor=3
# Minimum age of log files to be eligible for deletion due to age
log.retention.hours=168
# Default retention period for logs
log.segment.bytes=1073741824
# The default number of log partitions per topic
num.partitions=1
# The default replication factor for topics
default.replication.factor=3
# The minimum age of a log file to be eligible for deletion due to age
log.retention.hours=168
# The duration of time to retain data in Kafka
log.retention.check.interval.ms=300000
# The offset of the last message in the log
log.start.offset=0
編輯config/zookeeper.properties
文件:
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=broker1:2888:3888
server.2=broker2:2888:3888
server.3=broker3:2888:3888
在每個節點上啟動Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
在每個節點上啟動Kafka Broker:
bin/kafka-server-start.sh config/server.properties
使用Kafka自帶的工具驗證集群狀態:
bin/kafka-topics.sh --bootstrap-server broker1:9092 --list
創建一個Topic來測試集群:
bin/kafka-topics.sh --bootstrap-server broker1:9092 --create --topic test-topic --partitions 3 --replication-factor 3
啟動生產者和消費者來測試集群:
# 生產者
bin/kafka-console-producer.sh --broker-list broker1:9092 --topic test-topic
# 消費者
bin/kafka-console-consumer.sh --bootstrap-server broker1:9092 --topic test-topic --from-beginning
通過以上步驟,你應該能夠在CentOS上成功搭建一個Kafka集群。確保所有節點的時間同步,并且網絡連接正常。