深入理解Spark
文章目录1、Spark 是什么?2、Spark 运行模式3、适合Spark的场景4、Spark相关术语5、Spark程序执行流程6、理解Spark Stage的划分6.1 Spark Stage的划分6.2 Spark DAG的可视化7、Spark调度过程7.1 Spark的两级调度模型7.2 以Spark On Yarn说明调度过程小结在前面博客文章里,已经把大数据实时分析项目在spark组件之前的各个组件原理、部署和测试都给出相关讨论,接下来是项目最核心的内容:实时计算部分,因为项目将使用spark streaming做微批计算(准实时计算),因此接下的文章内容将深入spark以及spark streaming架构原理,为后面实际计算编程做铺垫。1、Spark 是什么?Spark是一种分布式的并行计算框架,什么是计算框架?所谓的计算(在数据层面理解)其实是用于数据处理和分析的一套解决方案,例如Python的Pandas,相信用过Pandas都很容易理解Pandas擅长做什么,加载数据、对数据进行各类加工、分析数据等,只不过Pandas只适合在单机上的、数据量百万到千万级的计算组件,而Spark则是分布式的、超大型多节点可并行处理数据的计算组件。Spark通常会跟MapReduce做对比,它与MapReduce 的最大不同之处在于Spark是基于内存的迭代式计算——Spark的Job处理的中间(排序和shuffling)输出结果可以保存在内存中,而不是在HDFS磁盘上反复IO浪费时间。除此之外,一个MapReduce 在计算过程中只有Map 和Reduce 两个阶段。而在Spark的计算模型中,它会根据rdd依赖关系预选设计出DAG计算图,把job分为n个计算阶段(Stage),因为它内存迭代式的,在处理完一个阶段以后,可以继续往下处理很多个阶段,而不只是两个阶段。Spark提供了超过80种不同的Transformation和Action算子,如map,reduce,filter,reduceByKey,groupByKey,sortByKey,foreach等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小(尤其用Scala和Python写计算业务代码方面)。正是基于使用易用性,因此Spark能更好地用于基于分布式大数据的数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark生态如下:2、Spark 运行模式目前最为常用的Spark运行模式有:Local:本地进程运行,例如启动一个pyspark交互式shell,一般用于开发调试Spark应用程序Standalone:利用Spark自带的资源管理与调度器运行Spark集群,采用Master/Slave结构,可引入ZooKeeper实现spark集群HAHadoop YARN : 集群运行在YARN资源管理器上,资源管理交给YARN,Spark只负责进行任务调度和计算,参考本博客《基于YARN HA集群的Spark HA集群》Apache Mesos :Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.将计算、内存、存储以及其他计算资源抽象出来,使得那些分布式系统更容易被构建以及更高效的被执行。其实就是跟YARN一样,做资源管理。Mesos和YARN两种资源有什么区别:之前看一个视频,对其给出的解释印象深刻:Mesos:细腻度资源管控YARN:粗粒度资源管控例如有个老师要给45个学生上课,向教务处申请课室资源,若教务处以Mesos模式发放资源,那么它会发放只能容纳45个学生的课室,典型的按需分配;若教务处以YARN模式发放资源,那么它会发放能容200个学生的大教室,但实际上还有155个人位置资源空闲。这就是资源的细腻度和粗粒度的区别。3、适合Spark的场景Spark适用场景:Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合,基于大数据的机器学习再适合不过,例如梯度下降法,需要不断迭代找到全局或局部最优解。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。准实时计算场合:实时接收用户行为原始数据,并通过Spark Streaming计算(转换+加工),例如在广告、报表、推荐系统等业务上,在广告业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等,这些业务天生适合大型的互联网巨头。Spark不适用场景:内存消耗极大,在内存不足的情况下,Spark会下放到磁盘,会降低应有的性能有高实时性要求的流式计算业务,例如实时性要求毫秒级,对每一条数据都触发实时计算的,这种场合已经被Flink称霸。流线长或文件流量非常大的数据集不适合,这是因为这种场合rdd消耗极大的内存集群压力大时,一旦一个task失败会导致它前面一条线所有的前置任务全部重跑(尤其对于RDD 血缘关系链长且有多个宽依赖的情况),JVM的GC不够及时,内存不能及时释放,将会出现恶性循环导致更多的task失败,导致整个Application效率极低。所以为什么说Spark是适合“微批”处理,意味着每隔一段时间(1秒或者几秒不等)来一批次数据,Spark适合“一小口一小口准实时地吃数据”。4、Spark相关术语

相关新闻

Zotero插件市场:插件生态系统的革命性集成解决方案

Zotero插件市场:插件生态系统的革命性集成解决方案

Zotero插件市场:插件生态系统的革命性集成解决方案 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing and installing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons Zotero插件市场是…

2026/7/28 11:36:14阅读更多 →
AI大模型在电商商品发布系统的应用与实践

AI大模型在电商商品发布系统的应用与实践

1. 项目概述:AI大模型驱动的智能商品发布系统 这个项目本质上是在解决电商领域的一个核心痛点——商品信息发布的效率与质量问题。传统商品发布流程通常需要运营人员手动填写大量字段、上传图片、编写描述,不仅耗时耗力,而且容易产生信息不一…

2026/7/28 11:34:14阅读更多 →
基于Codex平台构建AI自动化内容创作系统:从抖音爆款分析到脚本生成

基于Codex平台构建AI自动化内容创作系统:从抖音爆款分析到脚本生成

1. 项目背景与核心概念 最近在探索AI自动化内容创作时,我发现了一个非常有趣的组合:利用Codex平台创建自定义的Skill(技能),来批量分析抖音上的爆款视频,并自动化生成具备带货潜力的视频脚本。对于内容创作者、电商运营或者MCN机构来说,这不仅能极大提升内容生产效率,…

2026/7/28 11:34:14阅读更多 →
Windows开发实战:从系统优势到Redis、Docker环境配置全指南

Windows开发实战:从系统优势到Redis、Docker环境配置全指南

从桌面办公到游戏娱乐,再到企业级服务器和开发者工作站,Windows 操作系统几乎无处不在。无论是刚接触电脑的新手,还是需要部署复杂服务的资深开发者,都绕不开与 Windows 的交互。然而,在日常使用和开发过程中&#xff…

2026/7/28 13:02:34阅读更多 →
FontForge字体设计终极指南:从零开始打造专业字体

FontForge字体设计终极指南:从零开始打造专业字体

FontForge字体设计终极指南:从零开始打造专业字体 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾经梦想过设计属于自己的字体?是否在…

2026/7/28 13:02:34阅读更多 →
BQ7961x-Q1数据手册实战解析:从电气特性到菊花链通信设计

BQ7961x-Q1数据手册实战解析:从电气特性到菊花链通信设计

1. 项目概述:从数据手册到设计实战 拿到一份芯片数据手册,尤其是像BQ7961x-Q1这种功能复杂的电池监控芯片,面对动辄上百页的电气特性和时序表格,很多工程师的第一反应可能是头疼。这些参数不是冰冷的数字,它们直接决定…

2026/7/28 13:02:34阅读更多 →
Spring Boot实现高并发Web聊天室会话管理实战

Spring Boot实现高并发Web聊天室会话管理实战

1. 项目背景与核心需求在当今互联网应用中,实时通讯功能已成为基础需求之一。多用户网页聊天室作为典型的Web实时交互场景,其会话管理模块的设计质量直接影响系统的并发能力、消息可靠性和用户体验。我曾参与过多个企业级即时通讯系统的开发,…

2026/7/28 13:02:34阅读更多 →
字节跳动Seed2.1:AI智能体在代码工程与多模态应用的实战解析

字节跳动Seed2.1:AI智能体在代码工程与多模态应用的实战解析

最近在AI编程领域,字节跳动Seed2.1的发布引起了广泛关注。作为专注于AI生产力的新一代智能体模型,它在代码工程交付、多模态理解和通用Agent能力方面都有显著提升。本文将深入解析Seed2.1的核心特性,并通过实际案例展示如何将其应用于真实的开…

2026/7/28 13:02:34阅读更多 →
Havenlon|AI 时代的执行安全语言体系(六十):边界独立性与边界坍塌

Havenlon|AI 时代的执行安全语言体系(六十):边界独立性与边界坍塌

Working Draft AI Era Execution Security Language This article is part of the Havenlon Execution Security Language project. The terminology and definitions presented here describe the current working draft and may evolve as the discipline matures. AI 时代执…

2026/7/28 13:00:34阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →