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

spark—kafka

消息队列与Kafka介绍

        消息队列模式

点对点模式和发布订阅模式。Kafka主要使用发布订阅模式。

        Kafka角色

包括broker、topic、分区、生产者、消费者、消费者组、副本、leader和follower

术语

解释

Broker

安装了kafka的节点

 

 

Topic

 

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处),发送消息必须有主题。

Partition

Partition是物理上的概念,每个Topic包含一个或多个Partition.

Producer

负责发布消息到Kafka broker

Consumer

消息消费者,向Kafka broker读取消息的客户端

Consumer Group

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

当consumer去消费数据的时候,会有一个偏移量(offset),一个分区的数据,一个consumer只能消费一次。

replica

partition 的副本,保障 partition 的高可用

leader

replica 中的一个角色, producer 和 consumer 只跟 leader 交互

follower

replica 中的一个角色,从 leader 中复制数据,数据备份,如果leader挂掉,顶替leader的工作

controller

Kafka 集群中的其中一个服务器,用来进行 leader election 以及各种 failover

        Kafka特性

高吞吐量低延迟、可扩展性、持久性和可靠性、容错性、高并发性。

 

Kafka安装步骤

环境依赖:需要先安装JDK和Zookeeper。

版本一致性:Kafka和Scala版本需要一致。

安装包上传与解压:上传安装包到指定目录并解压。

配置修改:修改配置文件中的ID、主机名、日志路径、分区数量和Zookeeper集群端口号。

分发安装包:将安装包分发到其他节点并修改相应的配置。

 

启动Kafka集群

启动命令:使用后台守护进程启动Kafka集群。

环境变量配置:添加Kafka的环境变量并修改脚本文件权限。

一键启动脚本:使用脚本文件一键启动和关闭Kafka集群。

 

Spark与YARN环境安装

解压缩与重命名:对Spark进行解压缩和重命名。

配置文件修改:修改配置文件,添加Java Home和YARN相关变量。

分发与启动:分发配置文件到其他节点,启动HDFS和YARN集群,提交测试应用。

 

Spark-yarn

修改hadoop配置文件/opt/software/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml,并分发给其他节点。

是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true<property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value></property>

返回到spark-yarn目录,修改conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置。

mv spark-env.sh.template spark-env.shvi spark-env.sh

 启动HDFS以及Yarn集群提交测试应用bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master yarn \--deploy-mode cluster \./examples/jars/spark-examples_2.12-3.0.0.jar \

 有SUCCEEDED就是成功了

http://www.xdnf.cn/news/98857.html

相关文章:

  • 铆钉连接的一些参数
  • SpringBoot项目,密码加密之“BCrypt加密”
  • 使用 Streamlit 打造一个简单的照片墙应用
  • 前端渲染pdf文件解决方案-pdf.js
  • 为什么圆形在GeoJSON中被表示为多边形(Polygon)而不是圆形类型
  • 【OSCP-vulnhub】Raven-2
  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • arm64适配系列文章-第一章-arm64环境上kubesphere和k8s的部署
  • mybatis xml中特殊字符处理
  • 【k8s】Taint污点)、Toleration(容忍)
  • HCIA-Access V2.5_18_网络管理基础_1_网络管理系统架构
  • 去年15天背完高项重点,成功上岸
  • H5S 寒武纪GPU转码
  • 约束constraint
  • PHP 反序列化原生类 TIPS字符串逃逸CVE 绕过漏洞属性类型特征
  • 车载功能测试-车载域控/BCM控制器测试用例开发流程【用例导出方法+优先级划分原则】
  • Linux内核源码结构
  • 数智化浪潮下,智能外呼系统如何重塑沟通格局
  • WinForm实现管理员权限运行的方式
  • 外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径
  • 【论文阅读】Visual Instruction Tuning
  • 数字化应用低代码开发平台的崛起
  • AI大模型学习十一:‌尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功
  • 开源作业调度框架Quartz框架详细使用说明
  • XCZU19EG-2FFVC1760I Xilinx赛灵思FPGA Zynq UltraScale+MPSoC
  • 【AI 加持下的 Python 编程实战 2_09】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(上)
  • 建站踩得坑,nginx+mysql+php+wordpress
  • Linux笔记---进程间通信:匿名管道
  • 2.2 主流大模型架构:GPT、DeepSeek、GLM、Claude、QwQ、Qwen2.5-Max等模型的比较与应用场景
  • C++初阶-类和对象(下)