在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集群。确保所有节点的时间同步,并且网络连接正常。