「Kafka」入门篇

「Kafka」入门篇

基础架构

image-20231208182616047

image-20231208182131415

Kafka 快速入门

集群规划

image-20231227110547650

集群部署

官方下载地址:http://kafka.apache.org/downloads.html

  1. 解压安装包:

    [atguigu@hadoop102 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
    
  2. 修改解压后的文件名称:

    [atguigu@hadoop102 module]$ mv kafka_2.12-3.0.0/ kafka
    
  3. 进入到 /opt/module/kafka 目录,修改配置文件

    [atguigu@hadoop102 kafka]$ cd config/
    [atguigu@hadoop102 config]$ vim server.properties
    

    输入以下内容:

    # broker 的全局唯一编号,不能重复,只能是数字。
    broker.id=0
    # 处理网络请求的线程数量
    num.network.threads=3
    # 用来处理磁盘 IO 的线程数量
    num.io.threads=8
    # 发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    # 接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    # 请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    # kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/opt/module/kafka/datas
    # topic 在当前 broker 上的分区个数
    num.partitions=1
    # 用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    # segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    # 每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    # 配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
    zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
    
  4. 分发安装包

    [atguigu@hadoop102 module]$ xsync kafka/
    
  5. 分别在 hadoop103 和 hadoop104 上修改配置文件 /opt/module/kafka/config/server.properties 中的 broker.id=1broker.id=2

    注:broker.id 不得重复,整个集群中唯一。

    image-20231227111302720

  6. 配置环境变量

    • /etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置

      [atguigu@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
      
    • 增加如下内容:

      #KAFKA_HOME
      export KAFKA_HOME=/opt/module/kafka
      export PATH=$PATH:$KAFKA_HOME/bin
      
    • 刷新一下环境变量:

      [atguigu@hadoop102 module]$ source /etc/profile
      
    • 分发环境变量文件到其他节点,并 source:

      [atguigu@hadoop102 module]$ sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh
      [atguigu@hadoop103 module]$ source /etc/profile
      [atguigu@hadoop104 module]$ source /etc/profile
      
  7. 启动集群

    • 先启动 Zookeeper 集群,然后启动 Kafka:

      [atguigu@hadoop102 kafka]$ zk.sh start 
      
    • 依次在 hadoop102、hadoop103、hadoop104 节点上启动 Kafka:

      [atguigu@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
      [atguigu@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
      [atguigu@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
      

      注意:配置文件的路径要能够到server.properties

  8. 关闭集群

    [atguigu@hadoop102 kafka]$ bin/kafka-server-stop.sh 
    [atguigu@hadoop103 kafka]$ bin/kafka-server-stop.sh 
    [atguigu@hadoop104 kafka]$ bin/kafka-server-stop.sh 
    

集群启停脚本

  1. /home/atguigu/bin 目录下创建文件 kf.sh 脚本文件

    [atguigu@hadoop102 bin]$ vim kf.sh
    

    脚本如下:

    #! /bin/bash
    case $1 in
    "start"){for i in hadoop102 hadoop103 hadoop104doecho " --------启动 $i Kafka-------"ssh  $i  "/opt/module/kafka/bin/kafka-server-start.sh  -daemon /opt/module/kafka/config/server.properties"done
    };;
    "stop"){for i in hadoop102 hadoop103 hadoop104doecho " --------停止 $i Kafka-------"ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "done
    };;
    esac
    
  2. 添加执行权限

    [atguigu@hadoop102 bin]$ chmod +x kf.sh
    
  3. 启动集群命令

    [atguigu@hadoop102 ~]$ kf.sh start
    
  4. 停止集群命令

    [atguigu@hadoop102 ~]$ kf.sh stop
    

image-20231227113030694

Kafka 命令行操作

image-20231227113215848

主题命令行操作
  1. 查看操作主题命令参数

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh
    

    image-20231227113437850

  2. 查看当前服务器中的所有 topic

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list
    
  3. 创建 first topic

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first
    
    选项说明:
    --topic:定义 topic 名
    --replication-factor:定义副本数
    --partitions:定义分区数
    
  4. 查看 first 主题的详情

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server 
    hadoop102:9092 --describe --topic first
    
  5. 修改分区数(注意:分区数只能增加,不能减少)

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3
    
  6. 再次查看 first 主题的详情

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
    
  7. 删除 topic

    [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first
    
生产者命令行操作
  1. 查看操作生产者命令参数

    [atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh
    

    image-20231227113828506

  2. 发送消息

    [atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
    >hello world
    >atguigu atguigu
    
消费者命令行操作
  1. 查看操作消费者命令参数

    [atguigu@hadoop102 kafka]$ bin/kafka-console-consumer.sh
    

    image-20231227113934044

    image-20231227113944307

  2. 消费消息

    • 消费 first 主题中的数据:

      [atguigu@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
      
    • 把主题中所有的数据都读取出来(包括历史数据):

      [atguigu@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
      

笔记整理自b站尚硅谷视频教程:【尚硅谷】Kafka3.x教程(从入门到调优,深入全面)

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

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

相关文章

排列组合算法(升级版)

前言 在上一期博客中我们分享了一般的排列组合算法(没看的话点这里哦~),但是缺点很明显,没法进行取模运算,而且计算的范围十分有限,而今天分享的排列组合升级版算法能够轻松解决这些问题,话不多…

构建高效数据中台:集群规划与搭建的最佳实践指南

架构设计 Rack(机架)配置建议 大数据集群规划 安装细节见配套文档 两地三中心 两地三中心是一种信息技术架构模式,通常用于灾难恢复和业务连续性计划。这种模式设计有两个物理位置(两地),在这两个位置上部署了三个数据中心(三中心):一个主数据中心和两个备份数据中心…

使用Visual Studio 2022 winform项目打包成安装程序.exe

winform项目打包 1.安装扩展插件 Microsoft Visual Studio Installer Projects 20222.在解决方案上新建一个setup project 项目3.新建成功如下图,之后添加你的winform程序生成之后的debug下的文件4.在Application Folder上点击右键->Add->项目输出->主输出…

【xdma】 pcie.bar设置

FPGA优质开源项目– PCIE通信 xdma 两者保持一致 FPGA开源项目 – PCIE I/O控制卡 xdma PCIe的XDMA应用 读写部分分为两种,一种是数据的读写,另一种是配置数据的读写,在数据读写部分,DMA通过MIG控制DDR完成数据读写。配置数据…

EasyExcel导出

1.简介 官网:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 2.案例 2.1 实现的效果 效果图如下: 2.2 实现步骤 三种情景,主要是表头和数据有区别,简列实现步骤如下: 2.3 具体实现 2.3.1 前置-依赖导入…

Centos开启防火墙和端口命令

Centos开启防火墙和端口命令 1 课堂小知识1.1 centos7简介1.2 iptables方式开启防火墙 2 操作步骤2.1 开启查看关闭firewalld服务状态2.2 查看端口是否开放2.3 新增开放端口2.4 查看开放的端口 3 防火墙的其他指令 1 课堂小知识 1.1 centos7简介 CentOS 7是CentOS项目发布的开…

【Linux】 last 命令使用

last 命令 用于检索和展示系统中用户的登录信息。它从/var/log/wtmp文件中读取记录,并将登录信息按时间顺序列出。 著者 Miquel van Smoorenburg 语法 last [-R] [-num] [ -n num ] [-adiox] [ -f file ] [name...] [tty...]last 命令 -Linux手册页 选项及作用…

泰迪智能科技“供需对接就业育人项目”介绍

为帮助用人单位培养和招聘更多实用型、复合型和紧缺型人才,推动高校人才培养与就业有机联动、人才供需有效对接促进高校毕业生更加充分更高质量就业,经广东泰迪智能科技股份有限公司申报、全国高校毕业生就业创业指导委员会专家组审核,泰迪智能科技“供需…

2024年HTML+CSS+JS 网页版烟花代码

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 直接跳到末尾 获取完整源码 在线体验地址&…

可视化云监控/安防监控系统EasyCVR视频管理平台播流失败的原因(端口篇)

安防视频监控EasyCVR平台兼容性强,可支持的接入协议众多,包括国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台能将接入的视频…

mapboxgl 中热力图的实现以及给热力图点增加鼠标移上 popup 效果

文章目录 概要效果预览技术思路技术细节小结 概要 本篇文章还是关于最近做到的 mapboxgl 地图展开的。 借鉴官方示例:https://iclient.supermap.io/examples/mapboxgl/editor.html#heatMapLayer 效果预览 技术思路 将接口数据渲染到地图中形成热力图。还需要将热…

高效Java开发分析:JProfiler 14 for Mac中文

JProfiler允许你对运行中的Java应用程序进行实时性能分析。它提供了丰富的统计数据、图表和概览,帮助你了解应用程序的CPU使用情况、内存使用情况、线程活动等。你可以追踪和识别性能瓶颈,并快速定位问题所在。 内存分析:软件提供了强大的内…

❀My小学习之排序算法❀

目录 排序算法(Sorting algorithm):) 一、定义 二、分类 三、评价标准 排序算法(Sorting algorithm):) 一、定义 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的…

Win10 + 4090显卡配置深度学习环境 + gaussian-splatting配置 + 实测自己的场景

目录 1 安装Anaconda 2023.09版本 2 安装CUDA11.8 3 安装深度学习库Cudnn8.6.0 4 安装VSCODE2019 5 安装Colmap3.8 6 安装git 7 安装Python3.10 Pytorch2.0.0 7 安装项目 8 采集数据 8.1 IPhone 14 pro 拍摄30张照片左右 做预处理 8.2 生成colmap位姿等信息 8.3 开…

YOLOv5改进 | 主干篇 | 利用SENetV2改进网络结构 (全网首发改进)

一、本文介绍 本文给大家带来的改进机制是SENetV2,其是2023.11月的最新机制(所以大家想要发论文的可以在上面下点功夫),其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何…

StackOverflowError的JVM处理方式

背景: 事情来源于生产的一个异常日志 Caused by: java.lang.StackOverflowError: null at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:908) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.ArrayL…

构建安全防线:SDLC中的供应链攻击防范最佳实践与Log360解决方案

在过去的12个月里,有10家公司发现了软件供应链风险。供应链中依赖关系的增加扩大了对手的攻击面。这也导致威胁行为者将注意力从仅影响最终用户的下游链转移到上游链,影响供应商、客户和最终用户。因此,让我们立即讨论如何使你的SOC团队在产品…

搭建简单的GPT聊天机器人

目录 第一步 进行语料库读取、文本预处理,完成data_utls.py 第二步 进行Seq2Seq模型的构建,完成Seq2Seq.py 第三步 进行模型参数设置、加载词典和数据、数据准备、GPU设置、构建优化器和损失函数,进行模型的训练和测试,完成…

快速排序:高效分割与递归,排序领域的王者算法

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 快速排序这个名词,快排之所以叫快排肯定是有点东西的。他在处理大规模数据集时表现及其…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Row组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Row组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Row组件 沿水平方向布局容器。 子组件 可以包含子组件。 接口 Row(…