Kafka 安装教程

目录

前言

一、安装前的准备

1. 系统要求

2. 安装 JDK

3. 下载 Kafka

二、配置 Kafka

1. 配置 Zookeeper

2. 配置 Kafka Broker

3. 分发Kafka安装包

4. 配置环境变量(xcall.sh)

三、启动 Kafka 和 Zookeeper

四、测试 Kafka

1. 创建 Topic

2. 生产消息

3. 消费消息

五、总结


前言

Kafka 是一种高性能、分布式的消息队列系统,广泛应用于大数据实时处理场景中。本文将详细介绍如何在 Linux 环境中安装和配置 Kafka,希望对初学者有所帮助。

一、安装前的准备

1. 系统要求

  • 操作系统:本文以 CentOS 7 为例,其他 Linux 系统安装步骤类似。
  • Java 环境:Kafka 依赖 Java 运行环境,需要先安装 JDK。
  • Zookeeper: Kafka 依赖 Zookeeper 进行分布式协调。Zookeeper 可以单独安装,也可以使用 Kafka 内置的 Zookeeper 服务。

2. 安装 JDK

  1. 检查是否安装 JDK:java -version
  2. 如果没有安装,可自行安装 JDK。

3. 下载 Kafka

  1. 进入 Kafka 官方下载页面:Kafka 下载页面。
  2. 选择合适的 Kafka 版本(比如最新稳定版),复制下载链接。
  3. 下载 Kafka。
  4. 解压文件:
    cd /opt/moudles
    tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/installs/
  5. 修改解压后的文件名称:
    mv kafka_2.12-3.0.0/ kafka3
    # 版本号解读:2.12 是scala版本,3.0.0是kafka版本

二、配置 Kafka

Kafka 主要有两个配置文件:server.propertieszookeeper.properties

1. 配置 Zookeeper

Kafka 依赖 Zookeeper 进行分布式协调。Zookeeper 的配置文件位于 config/zookeeper.properties。(安装Zookeeper时已配置)

2. 配置 Kafka Broker

Kafka Broker 的配置文件位于 config/server.properties

  1. 打开配置文件:
    vi /opt/install/kafka3/config/server.properties
  2. 修改 broker.id(每个 Kafka 节点需要一个唯一的 ID):
    broker.id=0
  3. 配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理):
    zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181/kafka
    # /kafka的意思是:在zk中创建一个文件夹叫做kafka
  4. 配置日志存储路径:
    log.dirs=/opt/installs/kafka3/datas 

3. 分发Kafka安装包

 xsync.sh /opt/install/kafka3/ 
# 分别在 bigdata02 和 bigdata03上修改配置文件/opt/installs/kafka/config/server.properties 中的 broker.id=1、broker.id=2 
# 注:broker.id 不得重复,整个集群中唯一。

4. 配置环境变量(xcall.sh)

# 修改bigdata01的环境变量
export KAFKA_HOME=/opt/installs/kafka3
export PATH=$PATH:$KAFKA_HOME/bin# 分发一下:
xsync.sh /etc/profile# 刷新环境变量xcall.sh source /etc/profile 

三、启动 Kafka 和 Zookeeper

  1. 启动 Zookeeper:
    xcall.sh zkServer.sh start
    # 或者使用脚本zk.sh start
  2. 启动 Kafka:
    # 依次在 bigdata01、bigdata02、bigdata03 节点上启动 Kafka,先进入到kafka3 这个文件夹中bin/kafka-server-start.sh -daemon config/server.properties# 关闭指令
    bin/kafka-server-stop.sh

使用 jps 命令查看进程,确保 Zookeeper 和 Kafka 都已成功启动。

四、测试 Kafka

1. 创建 Topic

bin/kafka-topics.sh --bootstrap-server bigdata01:9092 --create --partitions 1 --replication-factor 3 --topic first

2. 生产消息

bin/kafka-console-producer.sh  --bootstrap-server bigdata01:9092 --topic first 

输入消息内容,然后回车发送。

3. 消费消息

打开另一个终端,输入以下命令接收消息:

bin/kafka-console-consumer.sh --bootstrap-server bigdata01:9092 --topic first 

五、总结

至此,我们成功在 Linux 系统上安装并配置了 Kafka,并进行了简单的消息收发测试。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Llama 3.2-Vision 多模态大语言模型

1. 引言 Llama 3.2-Vision多模态大型语言模型(文本 图像)是一个图像推理生成模型,按照官方的说法,在常见行业基准测试上,其性能优于许多可用的开源和闭源多模态模型。Llama 3.2-Vision有两个版本,一个是11B (7.9G),另…

OpenObserve云原生平台指南:在Ubuntu上快速部署与远程观测

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动OpenObserve容器4. 本地访问测试5. 公网访问本地部署的OpenObserve5.1 内网穿透工具安装5.2 创建公网地址 6. 配置固定公网地址 前言 本文主要介绍如何在Linux系统使用Docker快速本地化部署OpenObserve云原生可…

隧道论文阅读2-采用无人融合扫描数据的基于深度学习的垂直型隧道三维数字损伤图

目前存在的问题: 需要开发新的无人测量系统测量垂直隧道图像数据量巨大,基于深度学习完成损伤评估跟踪获取图像位置的困难,对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究,对整个目标结构的损伤定位仍然具有挑战性。为…

【从VAE到LDM】Variational Auto Encoder原理以及关于Latent Diffusion的思考

论文链接:High-Resolution Image Synthesis with Latent Diffusion Models 官方实现:CompVis/latent-diffusion、CompVis/stable-diffusion 视频讲解:一个视频看懂VAE的原理以及关于latent diffusion的思考 前言 目前的扩散模型范式基本上都…

1111fxh,MYSQL加锁规则

怎么查看一个事务中对索引的加锁情况 -- 这条语句可以看到事务执行过程中加了哪些锁 select * from performance_schema.data_locks X是next-key lock 混合锁 X,REC_NOT_GAP就是行锁 X,GAP是间隙锁 可重复读下的加锁规则 2原则2优化 1.加锁的基本单位是next-key lock,即行…

mysql中数据不存在却查询到记录?

前言 首先看下面的查询语种 select * from AudioKnowledgeChatInfo where AudioId297795550566600706; 查询结果如下 看到上面的查询结果,是不是一脸懵?这audioId明显不对啊,怎么查询到了? 原因剖析 首先我们来看看数据库表…

拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!

大家好,这里是在总统选举中惜败的超级牛 虽然没能拿下阿美利卡总统之位 但是牛牛的热加载功能,却能轻松拿下验证码的识别与爆破 验证码一般会在注册、登录等功能,用来防止自动化工具的攻击。一般的验证码生成过程如下图所示: …

闯关leetcode——202. Happy Number

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/happy-number/description/ 内容 Write an algorithm to determine if a number n is happy. A happy number is a number defined by the following process: Starting with any positive inte…

如何使用 Web Scraper API 高效采集 Facebook 用户帖子信息

目录 前言一、什么是Web Scraper API二、Web Scraper API 的优势:三、Web Scraper API 适用场景四、实践案例目标需求视频讲解1、选择Web Scraper API2、登录注册3、进入用户控制面板4、选择API5、触发数据收集 API6、获取爬虫结果7、分析爬虫结果(1&…

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。(保持json :key原始顺序) use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…

2024年下半年系统规划与管理师论文真题

试题一、论IT服务规划设计 IT服务规划设计处于整个IT服务生命周期中的前端,可以帮助IT服务供方了解客户的需求并对其进行全面的需求分析,规划设计的范围不仅包括新的服务,还包括服务连续性保障服务水平的满足和对标准、规则的遵从&#xff0…

无人机动力测试台如何快速外接第三方传感器

前言 动力测试台对于测试动力系统的拉力、扭矩、RPM 和效率至关重要。将传感器集成到您的测试中增加了另一层优化,可以将您的性能提升到一个新的水平。 在无人驾驶行业中,有充分的证据表明,从外部传感器收集数据可能具有挑战性。为了解决这…

金蝶云星空与旺店通数据集成解决方案实例

金蝶云星空与旺店通旗舰奇门的数据集成案例分享 在企业日常运营中,数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将聚焦于一个具体的系统对接集成案例:如何将金蝶云星空中的直接调拨单数据无缝集成到旺店通旗舰奇门平台。 本次集成方案命名…

gorm使用注意事项

1. 使用updates更新字段为0或""时 在updates更新时,会默认将数值为0、字符串为""等忽略掉,不会更新;比如 db.Model(&user).Updates(User{Name: "hello", Age: 18, Active: false, Games: 0, Friend: &qu…

docker compose - 设置名字

只使用 docker compose up 启动容器,默认名字为当前文件夹的名字 设置 project-name,docker 客户端会显示设置的名字,方便区分 docker compose --project-name webtest up错误: docker compose up --project-name webtest 效果…

破解反向代购复杂挑战,一站式简化逆向海淘购物

在全球化日益加深的今天,反向代购行业迎来了前所未有的发展机遇,同时也伴随着一系列挑战。这些企业不仅需要穿梭于世界各地的商场与网店,搜罗各式各样的商品,还要应对商品众多、客户下单繁杂以及客户细分需求多样化的现实问题。想…

户型超赞!招商“超级大城”再腾飞!三期新品全面升级!即将首开!

2024年9月底,美联储降息带来整体政策方向全面转变楼市组合大招密集落地,力度非同寻常。先是降息、降准、降存量房贷利率等货币宽松政策,到国家首提“止跌回稳”再到上海、深圳等一线城市连夜出台限购优化政策。在利好扶持重磅加码&#xff0c…

Web3 游戏周报(11.03 - 11.09)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【11.03 - 11.09】Web3 游戏行业动态: Ton Accelerator 推出名为「Synergy」的 500 万美元计划,旨在推动跨链创新,创造 TON 用户与 EVM 网络适应…

Kafka面试题解答(一)

1.kafka消息发送的流程? 生产者: 在消息发送的过程中涉及到了两个线程:main线程和sender线程。在main线程中创建了一个双端队列RecordAccumulator(默认32m)。main线程将消息发送到RecordAccumulator,sender线程不断地…

从规划到执行:高效项目进度管理流程与技巧

项目进度管理是项目管理的一个重要组成部分,包括规划、组织和管理活动和资源,确保项目按时完成。 该流程首先明确定义实现项目目标所需的所有任务和活动,并将它们细分为更小、更易管理的项目模块,以便于全面规划和执行。项目进度…