Spark_01_基本介绍
Enoch

官网:https://spark.apache.org/

spark 系列配套代码地址: https://github.com/Cheers0606/spark-learing.git

Spark 是一个支持 多语言 客户端开发 的 基于内存的 通用并行计算框架,目的是 让数据分析更加快速。跟它相对的是其它的传统⼤数据技术 Hadoop的MapReduce以及Flink流式实时计算引擎等。

Spark包含了⼤数据领域常⻅的各种计算框架:⽐如Spark Core⽤于离线计算,Spark SQL⽤于SQL的交互式查询,Spark Streaming⽤于实时流式计算,Spark MLlib⽤于机器学习,Spark GraphX⽤于图计算等。

1. Spark的核心模块

image-20250402221449086

  • Spark core:Spark Core中提供了Spark最基础与最核⼼的功能,Spark 其他的功能如:Spark SQL、Spark Streaming、GraphX、MLlib 都是在 Spark Core的基础上进⾏扩展的。
  • Spark SQL:通过SQL的方式来操作Spark读取的数据
  • Spark Streaming:SparkStreaming 用于实时计算中(流处理),Spark streaming的处理思想是:只要我处理的批次间隔足够小,那么我就是实时处理(微批处理)
  • Spark MLlib:机器学习相关的算法库。MLlib 不仅提供了模型评估、数据导⼊等额外的功能,还提供了⼀些更底层的机器学习原语。
  • Spark GraphX:面向图计算的一些框架和算法库

2. Spark的特点

  • 开发上手快:哪怕没有学习过MapReduce,只需要简单几行代码,就可以完成一个计算流程。(因为Spark封装了很多的方法以及算子)
  • Spark支持多语言开发:java、scala、python、SQL
  • 与hadoop可以无缝集成:Spark是一个通用的计算框架,本身是在hadoop之后发展出来的,spark+hadoop(hive)的组合是行业内大数据的主流组合。
  • 活跃度高:虽然已经诞生很多年,但是目前还是非常火热的一个计算框架,经过了很多公司的生产实践。

3. Spark和MapReduce的对比

MapReduce: 基于磁盘的批处理模型,分为 Map和 Reduce两阶段,中间数据需写入磁盘。这种设计导致大量 I/O 开销,尤其对迭代计算效率较低。

Spark: 采用 内存计算和弹性分布式数据集(RDD)模型,中间结果可缓存于内存中复用,减少磁盘交互。通过 DAG(有向无环图)调度优化任务执行顺序,减少 Shuffle 次数。

场景 MapReduce(慢、稳) Spark(快、不是特别稳)
离线批处理 ✔️ 海量数据 ETL、日志分析(低成本存储) ✔️ 中小规模数据批处理(高速度要求)
迭代计算 ❌ 效率低(需多次磁盘读写) ✔️ 机器学习、图计算(如 GraphX)
实时流处理 ❌ 不支持 ✔️ 微批处理(Spark Streaming)
交互式查询 ❌ 延迟高 ✔️ Spark SQL(低延迟 Ad-hoc 查询)
 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量