当前位置: 首页 > news >正文

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

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

相关文章:

Ubuntu 安装Kafka

在本指南中,我们将逐步演示如何在 Ubuntu 22.04 上安装 Apache Kafka。 在大数据中,数以百万计的数据源生成了大量的数据记录流,这些数据源包括社交媒体平台、企业系统、移动应用程序和物联网设备等。如此庞大的数据带来的主要挑战有两个方面…...

洗地机性价比高的是哪款?高性价比洗地机排名

洗地机已成为当下备受欢迎的智能家电之一,但在挑选合适的洗地机时,面对各种新词汇和功能选择,可能会让人感到困惑。因此,为了帮助大家在购买洗地机时不踩坑,我们基于市面上主流品牌的综合分析对比,总结出来…...

安装konga

创建konga数据库 docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:kong{IP}:5432/konga这里要注意docker部署时IP不能直接访问localhost 安装konga docker run -p 1337:1337 \--network kong-net \--name konga \-e "NODE_ENVprodu…...

算法基础之高精度总结

目录 高精度算法分类 高精度加减乘除的异同点 加和乘 相同点 减和除 相同点 不同点 处理前导0的方式 高精度算法分类 分类:加、减、乘、除 其中加减乘都适用于两个数都是高精度,除法因为除数是高精度的话不好用整除的方法,所以除法时…...

oracle TNS Listener 远程投毒漏洞修复

有个客户在等保测评过程,测评公司扫出一个关于oracle的漏洞如下: 客户是RAC环境11.2.0.4,在生产修复漏洞前我做了如下测试验证: 测试环境准备: RAC一套11.2.0.4 实例名dbserver [oraclehisdb1 ~]$ cat /etc/hosts …...

第二章:最新版零基础学习 PYTHON 教程(第一节 - Python 输入/输出–在 Python 中获取输入)

开发人员经常需要与用户交互,以获取数据或提供某种结果。如今,大多数程序都使用对话框来要求用户提供某种类型的输入。而Python为我们提供了两个内置函数来读取键盘输入。 目录 输入(提示) raw_input(提示) 输入函数在 Python 中的工作原理:...

react create-react-app v5 从零搭建项目

前言: 好久没用 create-react-app做项目了,这次为了个h5项目,就几个页面,决定自己搭建一个(ps:mmp 好久没用,搭建的时候遇到一堆问题)。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…...

2023软件测试八股文,涵盖所有面试题

Part1 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自…...

性能压力测试的定义及步骤是什么

在今天的数字化时代,软件系统的性能和稳定性对于企业的成功至关重要。为了确保软件在高负载和压力情况下的正常运行,性能压力测试成为了不可或缺的环节。本文将介绍性能压力测试的定义、步骤。 一、性能压力测试的定义和目标 性能压力测试是通过模拟实际…...

Selenium自动化中处理鼠标悬停并操作的方法

因为测试中遇到要鼠标悬停显示Tooltip,并操作tip上的内容,现记录如下。 方法一:通过鼠标链式操作 from selenium.webdriver.common.action_chains import ActionChains as ACac AC(self.driver)lst self.driver.find_element_by_xpath(//…...

python socket 编程实现猜数字

项目地址 https://gitee.com/lmk73444/learn_spring/tree/master/doc/1_x%E5%AD%A6%E4%B9%A0/002_py_socket python socket试验 mkdir /root/git_proj cd /root/git_proj# 首次 clone 项目 git clone https://gitee.com/lmk73444/learn_spring.git# 非首次 # 更新项目 cd /ro…...

20个提升效率的JS简写技巧,告别屎山!

JavaScript 中有很多简写技巧,可以缩短代码长度、减少冗余,并且提高代码的可读性和可维护性。本文将介绍 20 个提升效率的 JS 简写技巧,助你告别屎山,轻松编写优雅的代码! 移除数组假值 可以使用 filter() 结合 Bool…...

Pikachu靶场——SSRF 服务端请求伪造

文章目录 1 SSRF 服务端请求伪造1.1 SSRF(curl)1.1.1 漏洞防御 1.2 SSRF(file_get_content)1.2.1 漏洞防御1.2.3 SSRF 防御 1 SSRF 服务端请求伪造 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&a…...

Android file

写文件——FileOutputStream openFileOutput 读文件——FileInputStream openFileInput openFileOutput写文件时当文件不存在,Android自动创建。 通过BufferedWriter直接写入字符串 public void writeFile(String inputText) {FileOutputStream outputStream nul…...

【计算机网络】计网常见面试题总结

目录 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解? 二、谈一谈TCP协议的三次握手过程? 三、TCP协议为什么要三次握手?两次、四次不行吗? 四、谈一谈TCP协议的四次挥手过程? 五、什么是流量控制? …...

SpringMVC 学习(七)JSON

9. JSON 9.1 简介 JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级数据交换格式,采用独立于编程语言的文本格式储存和表示数据,易于机器解析和生成,提升网络传输效率。 任何 JavaScript 支持…...

重学C++ | std::set 的原理

std::set 是C标准库中的容器之一&#xff0c;它基于红黑树实现。std::set 利用红黑树的特性来实现有序的插入、查找和删除操作&#xff0c;并且具有较好的平均和最坏情况下的时间复杂度。 当向 std::set 插入元素时&#xff0c;它会按照特定的比较函数&#xff08;bool less<…...

AnV-X6使用及总结

目录 1 简介2 安装3 基础概念3.1 画布Graph3.2 基类Cell3.3 节点Node3.4 边Edge 4 使用4.1 创建节点4.2 节点连线4.3 事件系统 5 总结 1 简介 AntV是一个数据可视化&#xff08;https://x6.antv.antgroup.com/&#xff09;的工具&#xff08;https://antv.vision/zh/ &#xf…...

Go 围炉札记

文章目录 一、安装二、文档三、使用 一、安装 VSCode 和 CLion 为 Go 开发配置Visual Studio Code | Microsoft Learn VScode下配置Go语言开发环境【2023最新】 基础篇&#xff1a;新手使用vs code新建go项目 vscode里安装Go插件和配置Go环境 GO 笔记 Golang 配置代理 golang…...

数据分析回头看2——重复值检查/元素替换/异常值筛选

0、前言&#xff1a; 这部分内容是对Pandas的回顾&#xff0c;同时也是对Pandas处理异常数据的一些技巧的总结&#xff0c;不一定全面&#xff0c;只是自己在数据处理当中遇到的问题进行的总结。 1、当数据中有重复行的时候需要检测重复行&#xff1a; 方法&#xff1a;使用p…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...