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.rhkb.cn/news/142808.html

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

相关文章

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

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

FragmentManager is already executing transactions

本文解决问题: java.lang.IllegalStateException: FragmentManager is already executing transactions 问题背景描述: 在Fragment中 用tablayoutviewpagerfragment,即Fragment嵌套Fragment场景、或者ViewPager2嵌套ViewPager2时。 执行生命…

vue中同一个页面参数不同动态改变数据与标题

背景 要求做一个页面,可以在菜单配置参数后直接跳转显示不同的报表; 具体步骤 步骤1:接收参数 参数配置与路由拦截这里不详细说,可以参考vue配置参数跳转 说明:这里参考的是saber框架中的特殊情况,如果…

SQLyog 连接 MySQL8.0+ 报错2058

问题如下: 解决方案: 1.首先用命令窗口进入user表 2.使用有mysql.user表权限的用户连接mysql并执行如下命令: ALTER USER sqlyoglocalhost IDENTIFIED WITH mysql_native_password BY root23456; 注:使用mysql_native_password…

DBRichEdit关联ClientDataSet不能保存的Bug

ClientDataSet的最大好处,就是建立能内存表,特别DataSnap三层运用中,主要使用ClientDataSet与运程的服务器中的数据表,建立读取存贮关系。 在软件的使用中,总有客户反映,一些数据不能保存。 发现都是使用DB…

如何使用docker快速部署MinDoc文档系统

MinDoc是非常优秀的知识分享系统,但是很多刚接触的人会一脸懵逼,而且官方文档写的也并不清晰,所以和大家分享一下快速部署MinDoc的方法。 首先docker环境先自行安装好,这里不再赘述。 拉取docker镜像: docker pull …

RS232,485,422的定义及区别

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。 由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。串口按电气标准及协议来划分,包括RS232、RS422、R…

RFID技术:钢条加工现场的智能化管理利器

RFID技术:钢条加工现场的智能化管理利器 RFID(Radio Frequency Identification)技术作为一种非接触式自动识别技术,近年来在工业领域得到广泛应用。本文将探讨RFID在钢条加工现场的应用,包括材料追踪与管理、生产过程…

杭州亚运会开幕式惊现数字人火炬手,动捕设备迸发动画制作新动能

在第十九届亚运会开幕式上,首次出现了“数字人”点火形式,打造了亚运史上首个数字点火仪式,这种点火方式是一种颠覆性创作的同时,这也是裸眼3D技术、现实增强和AI人工智能技术的完美结合。 此次数字火炬手的背后是采用了动捕设备&…

家电行业 EDI:Miele EDI 需求分析

Miele是一家创立于1899年的德国公司,以其卓越的工程技术和不懈的创新精神而闻名于世。作为全球领先的家电制造商,Miele的经营范围覆盖了厨房、洗衣和清洁领域,致力于提供高品质、可持续和智能化的家电产品。公司的使命是为全球消费者创造更美…

代码随想录Day03 | 链表基础1 LeetCode T203 移除链表元素 T707设计链表 T206 反转链表

本题思路和解答主要来源于: 代码随想录 (programmercarl.com) LeetCode T203 移除链表元素 题目链接:203. 移除链表元素 - 力扣(LeetCode) 首先我们回顾一下单向链表,每个链表有一个指针域和一个数据域,在内存中是呈现不连续排列的,对比之前的数组,链…

水库河道生态流量监测系统的主要内容

一、系统背景 我国为保护河流生态环境,推动水资源科学、合理、有序开发和可持续利用,各地水利和环保部门相继出台措施对不满足生态流量下泄要求的水电站责令整改或挂牌督办。近几年几百家水库在各个主要流域建成,由于缺乏对各个水库生态下泄流…

win10系统x64安装java环境以及搭建自动化测试环境

记录一下卑微C低能选手安装java和环境配置: 一、java安装包下载 进入oracle的下载界面:Java Downloads | Oracle 下拉选择对应版本,一定要选择jdk安装包下载 注:这里下载必须要注册账号,下载速度还是非常快 二、开…

容器管理工具 Docker生态架构及部署

目录 一、Docker生态架构 1.1 Docker Containers Are Everywhere 1.2 生态架构 1.2.1 Docker Host 1.2.2 Docker daemon 1.2.3 Registry 1.2.4 Docker client 1.2.5 Image 1.2.6 Container 1.2.7 Docker Dashboard 1.3 Docker版本 二、Docker部署 2.1 使用YUM源部署…

vue3+vite 引用svg图标

页面展示效果: 1、安装依赖插件vite-plugin-svg-icons和fast-glob npm install vite-plugin-svg-icons --save npm install fast-glob --save 2、在vite.config.ts文件修改配置 import {createSvgIconsPlugin} from vite-plugin-svg-icons; createSvgIconsPlugin({…

3D 视觉市场空间广阔,3D 感知龙头全技术路线布局

3D 视觉市场尚处在发展早期,空间广阔 人类 70%以上信息通过眼睛获取,对于机器而言,视觉感知也是其“智能化”升级的重要基础。3D 成像让每一个像素除 x、y 轴数据外,还有 z 轴(深度/距离)数据。围绕着人体、物体、空间扫描一圈,就能得到点云图和精准的“1:1”还原的 3D …

colmap+openMVS稠密重建

简要记录一下colmapopenMVS稠密重建相关使用 openMVS的sample使用 测试数据集下载 链接:https://pan.baidu.com/s/13T04aKJ2OB6_RX7IMMGhpg 提取码:oxkp运行测试 将data放在OPENMVS/路径下。 cd ~/Documents/OPENMVS/openMVS/openMVS_build ./bin/Den…

【超详细Vue2教程】超详细的Vue2入门教程,让你的开发效率大大提高(自己整理的笔记,超详细!)

十一,Vue 声明:图片资源来自于黑马程序员公开学习资料 本人在学习当中,详细整理了笔记,供大家参考学习 11.1 Vue2 11.1.1 Vue简介 1-1 vue 框架的特性 // 数据驱动视图 // 双向数据绑定1-2 数据驱动视图 在使用了 vue 的页…

什么是内容运营?

关于内容运营,在不同种类的公司,侧重点也不一样。 电商平台的内容运营岗更偏内容营销;产品功能比较简单的公司,内容运营和新媒体运营的岗位职责差不多;而内容平台的内容运营更多的是做内容的管理和资源整合。

Selenium Web自动化测试 —— 高级控件交互方法!

一、使用场景 使用场景对应事件复制粘贴键盘事件拖动元素到某个位置鼠标事件鼠标悬停鼠标事件滚动到某个元素滚动事件使用触控笔点击触控笔事件(了解即可) https://www.selenium.dev/documentation/webdriver/actions_api 二、ActionChains解析 实例…