Ubuntu 上配置 Apache Kafka 的步骤
一 准备环境
sudo apt update && sudo apt install openjdk-11-jdk -yjava -versionsudo adduser kafka,按需加入 sudo 组,后续操作在该用户下进行。二 安装与目录准备
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgztar -xzvf kafka_2.12-3.5.2.tgzsudo mv kafka_2.12-3.5.2 /usr/local/kafkaecho 'export KAFKA_HOME=/usr/local/kafka' >> ~/.bashrcecho 'export PATH=$PATH:$KAFKA_HOME/bin' >> ~/.bashrcsource ~/.bashrcsudo mkdir -p /usr/local/kafka/data /usr/local/kafka/logssudo chown -R $USER:$USER /usr/local/kafka(如使用 kafka 用户则改为 chown -R kafka:kafka)。三 配置 ZooKeeper
/usr/local/kafka/config/zookeeper.properties
dataDir=/usr/local/kafka/data、clientPort=2181/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.propertiessudo nano /etc/systemd/system/zookeeper.service[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=simple
User=kafka
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
sudo systemctl daemon-reload && sudo systemctl enable --now zookeepersudo netstat -nap | grep 2181 或 telnet localhost 2181。四 配置并启动 Kafka Broker
/usr/local/kafka/config/server.properties
broker.id=0(集群中每个 broker 唯一)listeners=PLAINTEXT://0.0.0.0:9092advertised.listeners=PLAINTEXT://<服务器公网或内网IP>:9092zookeeper.connect=localhost:2181log.dirs=/usr/local/kafka/data/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.propertiessudo nano /etc/systemd/system/kafka.service[Unit]
Description=Apache Kafka
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
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-abnormal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now kafkasudo netstat -nap | grep 9092。五 创建 Topic 并进行收发测试
kafka-topics.sh --create --topic test-topic --zookeeper localhost:2181 --partitions 1 --replication-factor 1kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1kafka-topics.sh --list --bootstrap-server localhost:9092kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topickafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginningsudo ufw allow 2181/tcp 和 sudo ufw allow 9092/tcp,然后 sudo ufw reload。