在CentOS系统上搭建Kafka集群涉及多个步骤,包括安装Java、配置Zookeeper和Kafka服务器。以下是一个基本的指南:
Kafka需要Java运行环境,首先安装Java:
sudo yum install java-1.8.0-openjdk-devel
验证安装:
java -version
从Apache Kafka官网下载最新版本的Kafka,并解压到指定目录:
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
Kafka使用Zookeeper进行集群管理。首先启动Zookeeper:
# 进入Zookeeper目录
cd config
# 复制示例配置文件
cp zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg文件
vi zoo.cfg
# 添加以下配置
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
# 在每个Zookeeper节点上创建myid文件
echo "1" > /var/lib/zookeeper/myid # 在zookeeper1节点上
echo "2" > /var/lib/zookeeper/myid # 在zookeeper2节点上
echo "3" > /var/lib/zookeeper/myid # 在zookeeper3节点上
启动Zookeeper:
bin/zkServer.sh start
验证Zookeeper状态:
bin/zkServer.sh status
编辑Kafka配置文件server.properties
:
# 进入Kafka目录
cd config
# 复制示例配置文件
cp server_sample.properties server.properties
# 编辑server.properties文件
vi server.properties
# 修改以下配置
broker.id=1 # 每个broker的唯一ID
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
在每个Kafka节点上修改broker.id
和listeners
,并确保zookeeper.connect
指向所有Zookeeper节点。
在每个Kafka节点上启动Kafka服务器:
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-topics.sh --describe --topic test --bootstrap-server localhost:9092
启动生产者发送消息:
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在另一个终端启动消费者接收消息:
bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
在生产者终端输入消息,消费者终端应该会显示这些消息。
通过以上步骤,你可以在CentOS系统上成功搭建一个Kafka集群。根据实际需求,你可能需要进一步调整配置和优化性能。