世界都没见过
谈什么世界观

如何在Ubuntu 20.04 LTS上安装Apache Kafka

本文分享了如何在Ubuntu 20.04 LTS上安装Apache Kafka以及Kfaka使用的简单示例。

Kafka介绍

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。它提供了用于存储,读取和分析流数据的框架。要了解有关Kafka的更多信息,请访问官方文档页面。

先决条件

  • Ubuntu 20.04系统
  • 具有Sudo权限的用户
  • 防火墙端口开启:2181,9092
  • JDK 1.8或更高版本

在Ubuntu上安装JDK

请按照以下文章手动在Ubuntu 20.04 LTS上下载并安装Oracle JAVA 8。可以查看本站的如何在Ubuntu 20.04上安装Java。

步骤1:如何在Ubuntu 20.04 LTS上安装Apache Kafka

从官方网站下载二进制文件。请使用此链接下载并提示下载页面。

 sudo wget https://downloads.apache.org/kafka/2.4.1/kafka_2.13-2.4.1.tgz

现在解压缩存档文件并移动到另一个位置:

sudo tar xzf kafka_2.13-2.4.1.tgz
sudo mv kafka_2.13-2.4.1 /opt/kafka

第2步:创建Zookeeper和Kafka系统单位文件

为Zookeeper服务创建系统单位文件

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

粘贴以下几行

/etc/systemd/system/zookeeper.service

[Unit]Description=Apache Zookeeper serviceDocumentation=http://zookeeper.apache.orgRequires=network.target remote-fs.targetAfter=network.target remote-fs.target[Service]Type=simpleExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.propertiesExecStop=/opt/kafka/bin/zookeeper-server-stop.shRestart=on-abnormal[Install]WantedBy=multi-user.target

重新加载守护程序以生效

sudo systemctl daemon-reload

为kafka服务创建系统单元文件

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

在/etc/systemd/system/kafka.service文件中粘贴以下几行

[Unit]Description=Apache Kafka ServiceDocumentation=http://kafka.apache.org/documentation.htmlRequires=zookeeper.service[Service]Type=simpleEnvironment="JAVA_HOME=/opt/jdk/jdk1.8.0_251"ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.propertiesExecStop=/opt/kafka/bin/kafka-server-stop.sh[Install]WantedBy=multi-user.target

注意:如果您的Java安装路径不同,修改JAVA_HOME值。

重新加载守护程序以生效

sudo systemctl daemon-reload

步骤3:启动ZooKeeper和Kafka服务

让我们先启动Zookeeper服务

sudo systemctl start zookeeper

启动kafka服务

sudo systemctl start kafka

检查Zookeeper服务的状态(如果已启动)

sudo systemctl status zookeeper

输出:

● zookeeper.service - Apache Zookeeper serviceLoaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)Active: active (running) since Sat 2020-06-11 09:52:40 UTC; 22min agoDocs: http://zookeeper.apache.orgMain PID: 25638 (java)Tasks: 30 (limit: 9513)CGroup: /system.slice/zookeeper.service└─25638 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true

检查kafka服务的状态(如果已启动)

 sudo systemctl status kafka

输出:

● kafka.service - Apache Kafka ServiceLoaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: enabled)Active: active (running) since Sat 2020-06-11 09:52:48 UTC; 24min agoDocs: http://kafka.apache.org/documentation.htmlMain PID: 26027 (java)Tasks: 66 (limit: 9513)CGroup: /system.slice/kafka.service└─26027 /opt/jdk/jdk1.8.0_241/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -D

在后台启动Kafka和ZooKeeper服务器(不创建systemd单位文件)

我们有shell脚本在后端运行kafka和zookeeper服务器:

创建一个名为kafkastart.sh的文件,并复制以下脚本:

#!/ bin / bash sudo nohup /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties> / dev / null 2>&1&sleep 5 sudo nohup / opt / kafka / bin / kafka-server-start.sh -daemon /opt/kafka/config/server.properties> / dev / null 2>&1&

在授予可执行文件权限之后:

sudo chmod +x kafkastart.sh

成功地介绍了如何在ubuntu 20.04 LTS上安装apache kafka。

步骤4:在Kafka中创建主题

现在,我们将创建一个名为“DevOps”的主题,带有一个副本因子和分区:

cd /opt/kafka
sudo bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic DevOps

输出:

Created topic "DevOps".

查看创建的主题列表。

sudo bin/kafka-topics.sh --list --zookeeper localhost:2181

输出:

DevOps

步骤5:发送一些消息

发送一些有关已创建主题的消息。

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

提示输入的消息:

> Hi> How are you?

步骤6:开始消费

使用以下命令,我们可以看到消息列表:

sudo bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic DevOps --from-beginning> Hi> How are you?

第7步:从远程计算机连接Kafka

要进行连接,请创建主题并从远程服务器发送消息。请按照以下步骤操作。

转到以下路径:

cd /opt/kafka/config

现在查找server.properties并进行一些配置更改:

sudo vi server.properties

在此属性文件中,取消注释,如下所述:

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<HOST IP>:9092

步骤8:删除任何主题

如果要删除任何创建的主题,请使用以下命令:

sudo bin/kafka-topics.sh --delete localhost:9092 --topic <anytopic>
赞(0) 打赏
未经允许不得转载:VPS排行榜 » 如何在Ubuntu 20.04 LTS上安装Apache Kafka

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏