如何在Ubuntu 20.04 LTS上安装Apache Kafka


原文地址:如何在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 service
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=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 Service
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/opt/jdk/jdk1.8.0_251"
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/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 service
Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-06-11 09:52:40 UTC; 22min ago
Docs: http://zookeeper.apache.org
Main 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 Service
Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-06-11 09:52:48 UTC; 24min ago
Docs: http://kafka.apache.org/documentation.html
Main 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>

评论

登录后评论

服务器优惠活动

Top