【转】怎样在CentOS 8上安装Apache Kafka

原文链接:https://bynss.com/2020/317358.html

Apache Kafka是一个分布式流平台。建立实时流数据管道,以帮助您在系统或应用程序之间捕获数据。另一个有用的功能是实时流应用程序,可以转换和响应数据流。本教程将帮助您安装Apache Kafka CentOS 8 Linux系统。

第1步-安装Java

Apache Kafka要求在您的系统上安装Java。您可以通过运行以下命令在计算机上安装OpenJDK:还要安装其他一些必要的工具。

sudo dnf install java-11-openjdk wget vim

第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

步骤3 –设置Kafka Systemd单位文件

CentOS 8使用systemd来管理服务状态。因此,您需要为Zookeeper和Kafka服务创建systemd单元文件。这使您可以管理和启动/停止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单位文件:

vim /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/jre-11-openjdk"
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

 

一切都完成了。您已在CentOS 8上成功安装了Kafka。本教程的下一部分将帮助您在Kafka集群上创建主题,并与Kafka生产者和消费者服务一起使用。

第5步-使用Apache Kafka创建主题

Apache 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
KafkaonCentOS8
TutorialKafkaInstallCentOS8

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

第6步-Apache Kafka生产者和消费者

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

运行生产者,然后在控制台中输入一些消息并将其发送到服务器。

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

>Welcome to kafka
>This is my first topic
>

接下来,打开一个运行Apache Kafka使用者进程的新终端。 Kafka还提供了一个命令行使用者,可以从Kafka集群中读取数据并将消息打印到标准输出中。

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

Welcome to kafka
This is my first topic

-from-beginning选项用于从所选主题的开头读取消息。您可以跳过此选项,仅阅读最新消息。

例如,在单独的终端中运行Kafka的生产者和消费者。只需在生产者终端输入文本。它会立即显示在消费者终端上。查看工作的Kafka生产者和消费者的屏幕截图。

卡夫卡消费者和生产者的行动

结论

您已在CentOS 8 Linux机器上成功安装并配置了Kafka服务。

posted @ 2020-08-04 17:13  伊贺双刀流  阅读(150)  评论(0编辑  收藏  举报