在Ubuntu上稳定运行Apache Kafka需要经过一系列的步骤,包括安装Java环境、下载和解压Kafka、配置Kafka以及启动Kafka服务等。以下是详细的步骤:
Kafka需要Java环境来运行,推荐使用OpenJDK 11。
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version
从Apache Kafka官网下载最新稳定版本的Kafka,并解压到指定目录。
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.12-3.6.1.tgz
tar zxvf kafka_2.12-3.6.1.tgz -C /usr/local/
创建Zookeeper的数据目录,并编辑Zookeeper配置文件。
mkdir -p /usr/local/kafka/data/zookeeper
nano /usr/local/kafka/config/zookeeper.properties
更新dataDir
属性指向新数据目录。
dataDir=/usr/local/kafka/data/zookeeper
创建Kafka的数据目录,并编辑Kafka配置文件。
mkdir -p /usr/local/kafka/data/kafka
nano /usr/local/kafka/config/server.properties
更新以下属性:
log.dirs
/usr/local/kafka/data/kafka
zookeeper.connect
localhost:2181
在两个终端会话中分别启动Zookeeper和Kafka。
启动Zookeeper:
/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
启动Kafka:
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
创建一个测试Topic,并验证Kafka是否启动成功。
/usr/local/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
生产消息并消费消息以验证Kafka的功能。
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
/usr/local/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
为了确保Kafka和Zookeeper在启动时自动启动,可以将它们设置为systemd服务。
创建Zookeeper的systemd服务文件:
sudo nano /etc/systemd/system/zookeeper.service
添加以下内容:
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org/doc/current/
[Service]
Type=simple
Environment="PATH=/usr/local/kafka/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动并启用Zookeeper服务:
sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
创建Kafka的systemd服务文件:
sudo nano /etc/systemd/system/kafka.service
添加以下内容:
[Unit]
Description=Apache Kafka server
Documentation=http://kafka.apache.org/documentation.html
[Service]
Type=simple
Environment="PATH=/usr/local/kafka/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动并启用Kafka服务:
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
通过以上步骤,您可以在Ubuntu上成功安装并运行Apache Kafka。请确保遵循所有步骤,并根据需要调整配置。