Ubuntu 安装Kafka

在本指南中,我们将逐步演示如何在 Ubuntu 22.04 上安装 Apache Kafka。

在大数据中,数以百万计的数据源生成了大量的数据记录流,这些数据源包括社交媒体平台、企业系统、移动应用程序和物联网设备等。如此庞大的数据带来的主要挑战有两个方面:高效的数据收集和分析。为了克服这些挑战,您需要一个可靠且健壮的消息传递系统。

Apache Kafka 由 Apache Foundation 开发,用 Java 和 Scala 编写是开源分布式 pub/sub(发布订阅)事件处理大量数据流平台。它也允许您将消息从一个点传输到另一点。它与 Zookeeper 同步服务一起工作,并与 Apache Spark 无缝集成,用于分析和处理大规模数据。

与其他消息传递系统相比,Apache Kafka 提供了更好的吞吐量、固有的容错能力和复制能力,这使其成为企业消息处理应用程序的绝佳选择。 包括 Netflix、微软和 AirBnB 等顶级公司都有使用 Apache Kafka 服务。

必备条件

  • Pre Installed Ubuntu 22.04
  • Sudo User with Admin Rights
  • Internet Connectivity

(1) 安装 OpenJDK

由于 Apache Kafka 是用 Java 编写的,所以安装 Java 是一个先决条件,先更新包索引。

$ sudo apt update

接下来,安装 OpenJDK 11,它是 Java 标准版平台的免费开源实现。

$ sudo apt install openjdk-11-jdk -y

Install-Openjdk11-for-kafka-Ubuntu

接下来,查看 java 版本。

$ java -version

Check-Java-Version-Kafka-Ubuntu

(2) 安装 Apache Kafka

使用如下命令下载 Apache Kafka

$ wget https://archive.apache.org/dist/kafka/3.2.3/kafka_2.13-3.2.3.tgz

Download-Apache-Kafka-Wget-Command-Ubuntu

解压下载的文件

$ tar xvf kafka_2.13-3.2.3.tgz

解压后,创建了一个 KAFKA_2.12-3.5.0 的目录。将此目录移至 /usr/local 目录,并将其重命名为 kafka。

$ sudo mv kafka_2.13-3.2.3 /usr/local/kafka

Move-Kafka-Binary-user-local-ubuntu

(3) 创建 Kafka 和 ZooKeeper Systemd 单元文件

在这一步中,我们将为 Kafka 和 ZooKeeper 服务创建 systemd 单元文件。这将允许您使用 systemctl 命令轻松地管理服务。

使用 nano 编辑器创建 Zookeeper systemd 文件

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

粘贴以下代码行,定义 Zookeeper 的 systemd 服务。

[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
Environment="JAVA_HOME=/usr/local/programs/jdk-8u333-linux-x64/jdk1.8.0_333"
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

保存并退出

使用 nano 编辑器创建 Zookeeper systemd 文件

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

粘贴以下代码行,定义 kafka 的 systemd 服务。

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service[Service]
Type=simple
Environment="JAVA_HOME=/usr/local/programs/jdk-8u333-linux-x64/jdk1.8.0_333"
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

保存并退出

(4) 开启 Kafka 和 ZooKeeper Systemd 服务

所有 systemd 文件就位后,将所做的更改通知 systemd。

$ sudo systemctl daemon-reload

接下来,开启 Kafka 和 Zookeeper 服务

$ sudo systemctl start zookeeper
$ sudo systemctl start kafka

查看 Zookeeper 服务状态

$ sudo systemctl status zookeeper

Zookeeper-Service-Status-Ubuntu,查看 Apache Kafka 服务状态

$ sudo systemctl status kafka

Kafka-Service-Status-Ubuntu

(5) 创建 Kafka Topic

安装了 Kafka 和所有组件后,我们将创建一个 Topic 并尝试发送消息。在 Kafka 中,Topic 是用于组织消息的基本单元。每个 Topic 在集群中应该有一个唯一的名称。主题允许用户在 Kafka 服务器之间发送和读取数据。

你可以在 Kafka 中创建任意数量的集群。也就是说,现在让我们在本地主机端口 9092 上创建一个名为 sampleTopic 的Topic,该 Topic 具有单个复制因子。

$ cd /usr/local/kafka
$ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic sampleTopic

在运行该命令后,您将得到一个确认,表明主题已成功创建。

Created topic sampleTopic

Creating-Topic-Kafka-Server-Ubuntu

As mentioned earlier, you can create as many topics as you can using the same syntax. To check or list the topics created, run the command:

您可以使用相同的语法创建尽可能多的主题。需要查看或列出已创建的主题,使用如下命令

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

List-Kafka-Topic-Ubuntu

(6) 发送和接收消息

在 Kafka 中,生产者是一个跨不同分区将数据写入主题的应用程序。应用程序集成 Kafka 客户端库,向 Apache Kafka 写入消息。Kafka 客户端库是多种多样的,适用于各种编程语言,包括 Java、Python 等。

现在让我们运行生成器并在控制台上生成一条消息。

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

系统将提示您输入一些消息。在本例中,我们输入了几行代码。

> Hello World!
> Welcome to Apache Kafka
> This is the` first topic
``

完成后,可以退出或保持终端运行。要使用这些消息,请打开一个新终端并运行以下命令

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

您输入的消息将显示在终端上,如下所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BUUCTF:[MRCTF2020]套娃

查看源码发现 PHP非法参数名传参问题,详细请参考我的这篇文章:谈一谈PHP中关于非法参数名传参问题 正则这里绕过使用%0a换行符绕过,payload: /?b.u.p.t23333%0a 得到下一步信息:secrettw.php 注释中的是JsFuck,用这…

如何快速重置模型原点

1、什么是模型原点? 模型原点是三维建模中的概念,它是指在一个虚拟三维空间中确定的参考点。模型原点通常位于模型的几何中心或基本组件的中心位置。如图所示: 可以看到模型的原点在模型的几何中心 2、模型原点的作用 知道了什么是模型原点&…

微服务保护

1.初识Sentinel 1.1.雪崩问题及解决方案 1.雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。 如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞…

【C++入门指南】C如何过渡到C++?祖师爷究竟对C++做了什么?

【C入门指南】C如何过渡到C?祖师爷究竟对C做了什么? 前言一、命名空间1.1 命名空间的定义1.2 命名空间使用 二、C输入、输出2.1 std命名空间的使用惯例 三、缺省参数3.1 缺省参数的定义3.2 缺省参数分类 四、函数重载4.1 函数重载概念4.2 C支持函数重载的…

IP行业查询API:为用户分析提供帮助

引言 在数字化时代,IP地址不仅代表着设备在互联网上的位置,还蕴含着丰富的信息。IP地址所属行业查询API应运而生,为用户分析提供了有力支持。本文将探讨这一工具的应用,以及对用户分析的帮助。 IP行业API的应用 1. 目标市场定位…

Gartner公布《2023中国ICT技术成熟度曲线》,得帆信息入选低代码代表厂商

近日,Gartner发布《2023年中国ICT技术成熟度曲线》(《Hype Cycle for ICT in China, 2023》),对国内本年度ICT的发展趋势进行分析与总结,得帆信息作为低代码PaaS平台代表供应商(LCAP Sample Vendor&#xf…

低代码平台如何助力国内企业数字化转型?

数字化是什么 数字化(Digitalization)是将许多复杂多变的信息转变为可以度量的数字、数据,再以这些数字、数据建立起适当的数字化模型,把它们转变为一系列二进制代码,引入计算机内部,进行统一处理&#xf…

单元测试spring-boot-starter-test

参考博客&#xff1a; https://www.cnblogs.com/mzc1997/p/14306538.html 配置pom junit-vintage-engine junit4 junit-jupiter-engine junit5 排除junit4使用junit5,两者在切换时要特别注意 <dependency><groupId>org.springframework.boot</groupId><…

【产品运营】如何做好B端产品规划

产品规划是基于当下掌握的多维度信息&#xff0c;为追求特定目的&#xff0c;而制定的产品资源投入计划。 产品规划是基于当下掌握的多维度信息&#xff08;客户需求、市场趋势、竞争对手、竞争策略等&#xff09;&#xff0c;为追求特定目的&#xff08;商业增长、客户满意等&…

数码产品数码配件无线键盘等出口欧盟CE-RED认证测试办理

数码产品数码配件无线键盘CE-RED认证测试办理 无线产品CE-RED认证进入东欧市场规定&#xff1a; 在通信终端设备和无线产品在这些/地区合法销售之前&#xff0c;必须按照 RED 指令进行测试&#xff0c;并且还必须提供 CE 标志。无线远程控制产品必须符合 RED 指令的 REDEU 要…

ruoyi-nbcio增加websocket与测试页面

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 为了后面流程发起等消息推送&#xff0c;所以需要集成websocket。 1、后端增加websoket支持 首先在framework模块里的pom.xml增加websocket <dependency…

matlab产生指定功率的噪声信号、固定SNR的信号

randn函数产生噪声信号 首先要理解信号的幅度和功率&#xff0c;例如信号的幅度为 U U U&#xff0c;那么信号的功率就是 U 2 U^2 U2&#xff0c;他们之间是平方的关系。 matlab中randn函数用法&#xff0c;产生正态分布的随机数或矩阵的函数。 randn&#xff1a;产生均值为0…

PostMan、ApiFox等工具Post请求中@RequestParam和@RequestBody的混合使用如何传参

方法签名 PostMapping("/mms/sendAudit")public R sendAudit(RequestParam("mmsId") Long mmsId,RequestParam("ecId") Long ecId,RequestBody(required false) SignMatchRule signMatchRule) {以ApiFox为例子 RequestParam的Params的参数正常…

Unity用相机实现的镜子效果

首先登场 场景中的元素 mirror是镜子&#xff0c;挂着我们的脚本&#xff0c;Quad是一个面片。Camera是用来生成RenderTexture给面片的。里面的test1是我用来调试位置的球。 镜子size是大小&#xff0c;x是-2&#xff0c;为了反转一下贴图 相机直接可以禁用掉&#xff0c;用…

C语言数组和指针笔试题(四)(一定要看)

目录 二维数组例题一例题二例题三例题四例题五例题六例题七例题八例题九例题十例题十一 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412;个人主页 &#x1f978;&#x1f978;&#x1f978;C语言 &#x1f43f;️…

【笔记】Splay

【笔记】Splay 目录 简介右旋左旋 核心思想操作a. Splayb. 插入c. 删除 信息的维护例题AcWing 2437. SplayP3369 【模板】普通平衡树 简介 Splay 是一种平衡树&#xff0c;并且是一棵二叉搜索树&#xff08;BST&#xff09;。 它满足对于任意节点&#xff0c;都有左子树上任意…

0基础学习VR全景平台篇 第101篇:企业版功能-子账号分配管理

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 本期为大家带来蛙色VR平台&#xff0c;企业版教程-子账号分配管理功能&#xff01; 功能位置示意 一、本功能将用在哪里&#xff1f; 子账号分配管理功能&#xff0c;主要用于企业版用户为自己服务的终…

大模型助力企业数据驱动,火山引擎数智平台发布AI助手

9月19日&#xff0c;火山引擎在其举办的“V-Tech数据驱动科技峰会”上宣布&#xff0c;火山引擎数智平台VeDI推出“AI助手”&#xff0c;通过接入人工智能大模型&#xff0c;帮助企业提升数据处理和查询分析的效率。即使是不会写代码的运营人员&#xff0c;和大模型对话也能做好…

Java内存泄漏知识(软引用、弱引用等)

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、相关知识3.1 内存…

前后端分离的计算机毕设之基于springboot+vue的课程设计选题管理系统(内含源码+文档+教程)

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…