如何安装 Apache Rocky Linux 8 或 AlmaLinux 上的 Kafka

下面是安装步骤 Apache Rocky Linux 或 AlmaLinux 8 服务器上的 Kafka,当然,使用命令终端。

Apache Kafka 是一种开源软件,可通过分布式流媒体平台存储和处理数据流。 简单来说, Apache Kafka 是一个事件流平台,充当发送方和接收方之间的消息传递系统,具有高容错和可扩展性能力,因为它基于针对相同的优化的分布式架构。

嗯,这个系统最初是由 LinkedIn 开发的一个消息队列,但是,作为一个项目 Apache Software Foundation,它是开源的,是一个功能强大的流媒体平台。 它提供了将数据写入 Kafka 集群、读取数据或从第三方系统导入和导出数据的接口。 由于低延迟和高吞吐量,它可以轻松处理实时流。

这些接口还使用户可以从第三方系统加载数据流或将它们导出到这些系统。 这使得 Apache Kafka适用于大数据环境下的大量数据和应用。

它可用于广泛的应用程序,例如实时跟踪网站活动、监控分布式应用程序、聚合来自不同来源的日志文件、分布式系统中的数据同步、实时模型训练有助于机器学习、和更多…

Apache Kafka 提供了这四个主要接口(APIs – Application Programming Interfaces)。 了解有关每个 API 的更多信息 官方文档页面

  • 管理 API
  • 生产者 API
  • 消费者API
  • 流API
  • 连接API

遵循本教程需要什么:

  • Rocky 或 AlmaLinux 8 或任何其他基于 RHEL 的服务器,如果可能,然后清理一个。
  • 一个用户 sudo 使用权。

安装步骤 Apache Rocky Linux 8 上的 Kafka

如果需要,给定的指南适用于所有基于 RHEL 8 的 Linux 系统,包括 CentOS 8 和 Oracle Linux 8,以安装 Kafka。

1.更新系统

好吧,在进一步移动之前运行系统更新命令以确保所有已安装的软件包都是最新的。 为此,运行以下命令,这也将刷新存储库缓存。

sudo dnf update

2.安装Java

Apache Kafka 需要 Java 才能运行,因此首先我们需要将它安装在我们的本地环境中,并且它必须等于或大于 Java 8。好吧,我们不需要添加任何第三个存储库,因为获取 JAVA 的包已经在那里了系统基础存储库,因此,让我们使用给定的命令。

对于 Java 11

sudo dnf install java-11-openjdk

好吧,对于最新版本(例如 16),请使用以下命令:

sudo dnf install epel-release
sudo dnf install java-latest-openjdk

3.下载最新的 Apache Rocky Linux 8 或 Almalinux 上的 Kafka

Apache Kafka 在官方网站上以 tarball 文件的形式提供。 因此,转到 官网及下载 最新版本。 您也可以复制任何镜像链接并使用 wget 使用命令行下载命令,就像我们在这里所做的那样:

sudo dnf install wget nano
wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz

解压下载的文件

tar -xf kafka_*tgz

要查看文件:

ls

将其移至 /usr/local/ 只是为了确保我们不会意外删除 Kafka 文件夹。

sudo mv kafka_2.13-3.0.0/ /usr/local/kafka

4.为Zookeeper和Kafka创建系统服务

虽然只是为了测试你可以直接手动运行 Zookeeper 和 Kafka 服务脚本,但是对于生产服务器,我们必须在后台运行它。 因此,为这两个脚本创建 systemd 单元。

创建系统文件 Zookeeper

按照官网以后的说法,Kafka将不需要Zookeeper,但是在写这篇文章时我们需要它。 所以,先为Zookeeper创建一个服务文件。

sudo nano /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/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal  [Install] WantedBy=multi-user.target

Save 和 close 按下该文件 Ctrl+O, 打 Enter 键,然后使用退出 Ctrl+X.

现在,创建 Kafka systemd 文件

sudo nano /etc/systemd/system/kafka.service

粘贴以下几行。 笔记 – 改变 Java_Home,以防您使用其他版本。 要找到它,您可以使用命令 – sudo find /usr/ -name *jdk

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

Save 该文件与 Ctrl+O,Enter 键,然后使用 Ctrl+X 退出相同。

重新加载守护进程

要将上述更改反映到系统中并使用服务文件,请重新加载系统守护程序一次。

sudo systemctl daemon-reload

5. 在 Rocky Linux 上启动 Zookeeper 和 Kafka Server

现在,让我们启动并启用这两个服务器服务,以确保即使在系统重新启动后它们也将处于活动状态。

sudo systemctl start zookeeper sudo systemctl start kafka
sudo systemctl enable zookeeper sudo systemctl enable kafka

检查服务状态:

sudo systemctl status zookeeper
 sudo systemctl status kafka

Apdceh Kafka Server 服务启动

6. 在 Kafka 上创建测试主题——Rocky 或 AlmaLinux

Kafka 允许我们在各种机器上读取、写入、存储和处理事件,但是,为了存储这些事件,我们需要某个地方或文件夹,称为“话题“。 因此,在您的服务器终端上,使用以下命令至少创建一个主题,稍后您可以使用相同的命令创建任意数量的主题。

假设我们的第一个主题名称是 – 测试事件. 所以要创建相同的运行:

转到您的 Kafka 目录。

cd /usr/local/kafka/

并使用主题脚本:

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testevent

创建主题

创建任意数量的主题后,要列出所有主题,我们可以使用以下命令:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

7. 使用 Kafka Producer 编写一些事件并与消费者一起阅读

Kafka 提供了两个 API—— 制作人消费者,对于两者,它都提供了一个命令行客户端。 生产者负责创建事件,消费者使用它们来显示或读取生产者生成的数据。

打开两个终端选项卡或会话以实时了解事件生成器和阅读器设置。

#在第一个终端上:

为了测试,让我们使用 Producer 脚本创建一些事件:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testevent

键入一些您想要流式传输并在消费者端显示的文本。

#在另一个终端

跑, 下面给出的命令与主题名称一起实时检查消息或生成的事件数据:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testevent --from-beginning

发送 Apache 生产者消息给消费者

其他文章:

• 如何在 Rocky Linux 8 服务器上安装 LAMP
• 如何在 Rocky Linux 8 上安装 phpMyAdmin Apache

• 安装 ApacheRocky 或 AlmaLinux 8 上的 MySQL 和 PHP
• 如何在 AlmaLinux 或 Rocky 8 上安装 InfluxDB