如何安装 Apache Ubuntu 20.04 上的 Kafka

Apache Kafka 是一个开源的分布式事件流平台,由 Apache 软件基金会。 这是用 Scala 和 Java 编程语言编写的。 您可以在任何支持 Java 的平台上安装 Kafka。

本教程为您介绍了一步一步的安装教程 Apache Ubuntu 20.04 LTS Linux 系统上的 Kafka。 您还将学习在 Kafka 中创建主题并运行生产者和消费者节点。

先决条件

你必须有 sudo 特权帐户访问 Ubuntu 20.04 Linux 系统。

步骤 1 – 安装 Java

Apache Kafka 可以在所有支持 Java 的平台上运行。 为了在 Ubuntu 系统上设置 Kafka,您需要先安装 java。 众所周知,Oracle java现在已经商用,所以我们使用的是它的开源版本OpenJDK。

执行以下命令从官方 PPA 的系统上安装 OpenJDK。

sudo apt update  sudo apt install default-jdk 

验证当前活动的 Java 版本。

java --version   openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing) 

第 2 步 – 下载最新版本 Apache 卡夫卡

下载 Apache 来自其官方的Kafka二进制文件 下载 网站。 您还可以选择附近的任何镜像进行下载。

wget https://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz 

然后解压存档文件

tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka 

步骤 3 – 创建 Systemd 单元文件

现在,您需要为 Zookeeper 和 Kafka 服务创建 systemd 单元文件。 这将帮助您以简单的方式启动/停止 Kafka 服务。

首先,为 Zookeeper 创建一个 systemd 单元文件:

vim /etc/systemd/system/zookeeper.service 

并添加以下内容:

[Unit] Description=Apache Zookeeper server Documentation=https://zookeeper.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target  [Service] Type=simple 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-abnormal  [Install] WantedBy=multi-user.target 

Save 文件和 close 它。

接下来,为 Kafka 服务创建一个 systemd 单元文件:

vim /etc/systemd/system/kafka.service 

添加以下内容。 确保设置正确 JAVA_HOME 根据系统上安装的 Java 的路径。

[Unit] Description=Apache Kafka Server Documentation=https://kafka.apache.org/documentation.html Requires=zookeeper.service  [Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh  [Install] WantedBy=multi-user.target 

Save 文件和 close.

重新加载 systemd 守护进程以应用新的更改。

systemctl daemon-reload 

第 4 步 – 启动 Kafka 和 Zookeeper 服务

首先需要启动ZooKeeper服务,然后启动Kafka。 使用 systemctl 命令启动单节点 ZooKeeper 实例。

sudo systemctl start zookeeper 

现在启动Kafka服务器,查看运行状态:

sudo systemctl start kafka sudo systemctl status kafka 

全部完成。 Kafka安装已经成功完成。 本教程的一部分将帮助您使用 Kafka 服务器。

第 5 步 – 在 Kafka 中创建主题

Kafka 提供了多个预构建的 shell 脚本来处理它。 首先,创建一个名为“testTopic”的主题,它有一个带有单个副本的分区:

cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic  Created topic testTopic. 

复制因子描述将创建多少数据副本。 当我们使用单个实例运行时,将此值保持为 1。

将分区选项设置为您希望数据在其间拆分的代理数量。 当我们使用单个代理运行时,请将此值保持为 1。

您可以通过运行与上述相同的命令来创建多个主题。 之后,您可以通过运行以下命令在 Kafka 上看到创建的主题:

bin/kafka-topics.sh --list --zookeeper localhost:2181  [output] testTopic 

或者,您也可以将代理配置为在发布不存在的主题时自动创建主题,而不是手动创建主题。

第 6 步 – 在 Kafka 中发送和接收消息

“生产者”是负责将数据放入我们的 Kafka 的过程。 Kafka 带有一个命令行客户端,该客户端将从文件或标准输入中获取输入,并将其作为消息发送到 Kafka 集群。 默认的 Kafka 将每一行作为单独的消息发送。

让我们运行生产者,然后在控制台中键入一些消息以发送到服务器。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic  >Welcome to kafka >This is my first topic > 

您可以退出此命令或保持此终端运行以进行进一步测试。 现在在下一步中为 Kafka 消费者进程打开一个新终端。

第 7 步 – 使用 Kafka 消费者

Kafka 还有一个命令行消费者,用于从 Kafka 集群读取数据并将消息显示到标准输出。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning  Welcome to kafka This is my first topic 

现在,如果您仍在另一个终端中运行 Kafka 生产者(步骤 #6)。 只需在该生产者终端上输入一些文本即可。 它将立即在消费者终端上可见。 请参阅以下 Kafka 生产者和消费者在工作中的屏幕截图: