在CentOS上搭建Kafka集群涉及多个步骤,包括安装Java、下载Kafka、配置Zookeeper和Kafka、启动服务以及验证集群状态。以下是一个详细的步骤指南:
Kafka需要Java运行环境,因此首先需要安装Java。可以使用以下命令安装OpenJDK 8:
sudo yum install -y java-1.8.0-openjdk
安装完成后,验证Java版本:
java -version
从Apache Kafka官网下载最新版本的Kafka。例如,下载Kafka 2.13.0版本:
wget https://downloads.apache.org/kafka/2.13.0/kafka_2.13-2.13.0.tgz
将下载的Kafka安装包解压到指定目录,例如 /opt
:
tar -xzf kafka_2.13-2.13.0.tgz -C /opt
Kafka依赖于Zookeeper来管理集群状态信息。在Kafka配置目录下创建一个新的Zookeeper配置文件并编辑:
cd /opt/kafka_2.13-2.13.0
sudo cp config/zookeeper.properties config/zookeeper.properties.bak
sudo nano config/zookeeper.properties
在配置文件中,进行以下配置:
dataDir=/tmp/zookeeper
clientPort=2181
启动Zookeeper服务:
./bin/zookeeper-server-start.sh config/zookeeper.properties
在Kafka配置目录下创建一个新的Kafka配置文件并编辑:
sudo cp config/server.properties config/server.properties.bak
sudo nano config/server.properties
进行以下配置:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
进入Kafka目录,并启动Kafka服务:
cd /opt/kafka_2.13-2.13.0
./bin/kafka-server-start.sh config/server.properties
创建一个主题并生产一些消息以验证安装:
./bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
生产消息:
./bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在控制台输入一些消息,例如:
Hello, Kafka!
然后按 Ctrl+C 退出生产者。
创建一个消费者来消费这些消息:
./bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
您应该能看到之前生产的消息:
Hello, Kafka!
对于多节点集群,需要在其他节点上重复上述步骤,并确保每个节点的 broker.id
唯一。同时,所有节点的 zookeeper.connect
配置应指向同一个Zookeeper实例。
在任意一个节点上执行以下命令查看集群元数据:
./bin/kafka-metadata-shell.sh --snapshot /tmp/zookeeper/log_dir/__cluster_metadata-0/00000000000000000000.log
使用以下命令测试Topic自动创建:
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic auto-created-topic
查看Topic分区分布:
./bin/kafka-topics.sh --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --describe --topic auto-created-topic
以上步骤应该可以帮助您在CentOS上成功搭建和配置Kafka集群。