在Ubuntu上配置Kafka环境可以分为几个主要步骤:安装Java、下载和解压Kafka、配置Zookeeper、配置Kafka、启动服务以及验证配置。以下是详细的步骤:
Kafka是用Java编写的,因此首先需要在系统上安装Java。推荐使用OpenJDK。
sudo apt update sudo apt install openjdk-8-jdk 验证Java是否安装成功:
java -version 从Apache Kafka官网下载适合Ubuntu的Kafka版本,例如Kafka 3.5.2。
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz tar -xzvf kafka_2.12-3.5.2.tgz -C /usr/local cd /usr/local/kafka_2.12-3.5.2 Kafka 2.8.0及以上版本不再依赖外部Zookeeper,但为了完整性,这里仍然提供一个基本的Zookeeper配置示例。
sudo mkdir -p /usr/local/zookeeper/data sudo mkdir -p /usr/local/zookeeper/log sudo cp config/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg sudo vi /usr/local/zookeeper/conf/zoo.cfg 修改以下配置项:
dataDir /usr/local/zookeeper/data dataLogDir /usr/local/zookeeper/log clientPort 2181 tickTime 2000 initLimit 10 syncLimit 5 server.0 localhost:2888:3888 server.1 localhost:2889:3889 server.2 localhost:2890:3890 启动Zookeeper:
sudo /usr/local/zookeeper/bin/zkServer.sh start 验证Zookeeper是否启动成功:
sudo netstat -nap | grep 2181 编辑Kafka的配置文件 server.properties:
sudo cp config/server.properties /usr/local/kafka_2.12-3.5.2/config/ sudo vi /usr/local/kafka_2.12-3.5.2/config/server.properties 修改以下配置项:
broker.id 0 listeners PLAINTEXT://:9092 log.dirs /usr/local/kafka_2.12-3.5.2/kafka_logs num.network.threads 3 num.io.threads 8 log.flush.interval.messages 10000 log.flush.interval.ms 1000 log.retention.hours 168 log.segment.bytes 1073741824 zookeeper.connect localhost:2181 delete.topic.enable true 启动Kafka服务器:
sudo /usr/local/kafka_2.12-3.5.2/bin/kafka-server-start.sh config/server.properties 创建一个测试Topic并验证生产者和消费者是否正常工作:
sudo /usr/local/kafka_2.12-3.5.2/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test sudo /usr/local/kafka_2.12-3.5.2/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test sudo /usr/local/kafka_2.12-3.5.2/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning 启动Kafka服务:
sudo systemctl start kafka 设置Kafka服务开机自启:
sudo systemctl enable kafka 停止Kafka服务:
sudo systemctl stop kafka 检查Kafka服务状态:
sudo systemctl status kafka