在CentOS上搭建Kafka集群需要以下几个步骤:
准备环境:
下载并解压Kafka:
配置Kafka:
server.properties文件,这个文件位于Kafka安装目录的config文件夹中。broker.id,每个broker的唯一ID。listeners或advertised.listeners,指定broker监听的地址和端口。log.dirs,指定日志存储的目录。zookeeper.connect,指向ZooKeeper集群的连接字符串。启动ZooKeeper:
启动Kafka Broker:
验证集群:
下面是具体的操作步骤:
确保所有节点上都安装了Java环境:
sudo yum install java-1.8.0-openjdk-devel
关闭防火墙:
sudo systemctl stop firewalld
在每个节点上执行以下命令:
wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
tar -xzf kafka_2.13-2.8.0.tgz
cd kafka_2.13-2.8.0
编辑server.properties文件:
vi config/server.properties
进行必要的配置,例如:
broker.id=1 # 每个broker的唯一ID
listeners=PLAINTEXT://:9092 # 监听的地址和端口
log.dirs=/tmp/kafka-logs # 日志存储目录
zookeeper.connect=zookeeper:2181 # ZooKeeper连接字符串
在每个节点上启动ZooKeeper服务:
bin/zookeeper-server-start.sh config/zookeeper.properties
在每个节点上启动Kafka Broker:
bin/kafka-server-start.sh config/server.properties
创建一个主题:
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3
生产消息:
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
消费消息:
bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
请注意,这里的localhost:9092应该替换为实际的broker地址和端口。如果你有多个broker,确保在zookeeper.connect和kafka-console-producer.sh/kafka-console-consumer.sh命令中使用正确的broker地址列表。
以上步骤是在单个节点上启动Kafka的基本过程。在集群环境中,你需要确保每个broker都有唯一的broker.id,并且zookeeper.connect指向所有ZooKeeper节点的地址。此外,你可能还需要配置其他参数,如group.id、auto.offset.reset等,以满足你的具体需求。