Kafka 工具无法在 Ubuntu 18.04 上启动

Kafka 工具无法在 Ubuntu 18.04 上启动

我从http://www.kafkatool.com/download.html在 Ubuntu 18.04 中。安装正常,但当我单击它时,它什么也没做。我在不同的设备上多次安装,但我真的不知道发生了什么。

我首先安装了 openjdk-8-jdk、kafkatools,然后安装了 zookeeper 和 kafka,然后我删除了 kafkatools 并重新安装,但问题仍然存在。

答案1

Kafka 是一个分布式流媒体平台。它对于构建实时流数据管道以在系统或应用程序之间获取数据非常有用。另一个有用的功能是实时流应用程序,它可以转换数据流或对数据流做出反应。此答案将帮助您在 Ubuntu 16.04 及更高版本上安装 Apache Kafka。

1.安装 Java

Apache Kafka 需要 Java 才能运行。您必须在系统上安装 Java。执行以下命令从官方 Ubuntu 存储库在您的系统上安装默认 OpenJDK。您也可以从这里

sudo apt update
sudo apt install openjdk-8-jdk

2.下载 Apache Kafka

从 Apache Kafka 官方下载二进制文件下载网站。您也可以选择任何附近的下载镜像。

wget http://www-us.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz

然后提取档案文件。

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

或者,从这里下载二进制文件: https://kafka.apache.org/downloads

注意:从 snap 方式安装无法在 Ubuntu 22.04 上进行

3. 设置 Kafka systemd 单元文件

接下来为 Zookeeper 和 Kafka 服务创建 systemd 单元文件。这将有助于使用 systemctl 命令管理 Kafka 服务的启动/停止。

首先,使用以下命令为 Zookeeper 创建 systemd 单元文件:

vim /etc/systemd/system/zookeeper.service

添加以下内容:

[Unit]
Description=Apache Zookeeper server
Documentation=http://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

保存文件并关闭。

接下来,使用以下命令创建 Kafka systemd 单元文件:

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

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

[Unit]
Description=Apache Kafka Server
Documentation=http://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

保存文件并关闭。

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

systemctl daemon-reload

4.启动Kafka服务器

Kafka 需要 ZooKeeper,因此首先,在您的系统上启动 ZooKeeper 服务器。您可以使用 Kafka 提供的脚本来启动单节点 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
testTopic
TecAdminTutorial1
TecAdminTutorial2

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

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 生产器和消费者工作截图:

在此处输入图片描述

来源:如何在 Ubuntu 18.04 和 16.04 上安装 Apache Kafka

相关内容