
概念:
Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎
- Spark
Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎
Spark Core 中提供了 Spark 最基础与最核心的功能
Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。
Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API
Spark核心模块

(一)Spark Core
Spark Core 是 Spark 的基础核心,除了提供任务调度、内存管理、数据分发等基本功能外,还包含了 RDD 的核心实现。它是整个 Spark 生态系统的基石,其他组件如 Spark SQL、Spark Streaming 等都是基于 Spark Core 构建的。Spark Core 支持在不同的集群资源管理器上运行,具备良好的扩展性和兼容性,能够满足各种规模的大数据处理任务需求

(二)Spark SQL
Spark SQL 主要用于处理结构化数据,支持标准的 SQL 查询语法以及基于 DataFrame 和 Dataset 的编程接口。它可以将 SQL 查询转换为底层的 RDD 操作进行执行,同时支持与 Hive 的元数据交互,能够读写 Hive 表数据,实现 Hive 与 Spark 的无缝集成
Spark SQL 具备强大的查询优化能力,通过 Catalyst 优化器对 SQL 语句进行语法分析、逻辑优化和物理优化,生成高效的执行计划。此外,它还支持多种数据源,包括 JSON、CSV、Parquet 格式的数据文件,以及关系型数据库,方便用户从不同数据源读取和写入结构化数据

(三)Spark Streaming
Spark Streaming 是 Spark 的实时流处理组件,采用离散化流(Discretized Stream,DStream)的抽象概念,将连续的流数据分割成一个个小的批次(batch)进行处理,每个批次数据可看作一个 RDD。虽然 Spark Streaming 处理的是流数据,但本质上仍然基于 Spark Core 的批处理机制,这种设计使得 Spark Streaming 能够利用 Spark 的诸多优化技术和生态组件。
在实际应用中,Spark Streaming 可以对接多种数据源,如 Kafka、Flume 等,实时接收数据并进行处理。支持的操作包括窗口操作(如滑动窗口计算)、状态操作(如维护聚合状态)等,广泛应用于实时监控、实时日志分析、实时推荐等领域

(四)Spark MLlib
MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语
(五)Spark GraphX
GraphX 是 Spark 面向图计算提供的框架与算法库
RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合
特性:弹性;分布式;数据集;数据抽象;不可变;可分区、并行计算
RDD序列化:
1、闭包检查
2、序列化方法和属性
3、Kryo序列化框架
RDD依赖关系
1)RDD血缘关系
2)RDD依赖关系
3)RDD窄依赖
4)RDD宽依赖
5)RDD阶段划分
6)RDD任务划分