在CentOS下配置Apache Kafka可以分为几个步骤,包括安装必要的软件、配置Kafka服务器、启动服务以及创建和配置Kafka主题。以下是详细的步骤:
Kafka需要Java环境,首先需要安装Java。
# 下载JDK 11
wget https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html#license-lightbox
# 安装JDK
sudo rpm -ivh jdk-11.0.12_linux-x64_bin.rpm
# 设置环境变量
echo "export JAVA_HOME=/usr/java/jdk-11.0.12" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
source /etc/profile
# 验证安装
java -version
从Apache Kafka官方网站下载最新版本的Kafka,并解压。
# 下载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
Kafka使用Zookeeper进行集群管理和元数据存储。
# 下载Zookeeper
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
# 解压
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz
cd apache-zookeeper-3.8.0
在每个Zookeeper节点上编辑zoo.cfg
文件。
# 复制zoo_sample.cfg为zoo.cfg
cp zoo_sample.cfg zoo.cfg
# 修改配置
dataDir=/var/lib/zookeeper
server.1=kafka01:2888:3888
server.2=kafka02:2888:3888
server.3=kafka03:2888:3888
# 创建myid文件
echo 1 > /var/lib/zookeeper/myid
# 启动Zookeeper
bin/zkServer.sh start
# 验证启动状态
bin/zkServer.sh status
在Kafka的config
目录下,编辑server.properties
文件。
# 复制server.properties
cp config/server.properties .
# 修改配置
broker.id=1
listeners=PLAINTEXT://:9092
zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181
# 启动Kafka
bin/kafka-server-start.sh config/server.properties
创建一个名为my-topic
的Kafka主题。
# 创建主题
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic my-topic
# 列出主题
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
可以使用Kafka自带的生产者和消费者工具来验证配置是否成功。
# 生产者配置文件 producer.properties
broker.list=localhost:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
# 启动生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic
# 消费者配置文件 consumer.properties
bootstrap.servers=localhost:9092
group.id=test
key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
# 启动消费者
bin/kafka-console-consumer.sh --bootstrap-servers localhost:9092 --topic my-topic --from-beginning
以上步骤涵盖了在CentOS下配置Kafka的基本流程,包括安装Java、Zookeeper和Kafka,配置相关文件,以及启动服务。如果需要搭建更复杂的Kafka集群,可以参考相关文档进行更深入的配置。