Spark介绍

一、Spark的定位:计算引擎,不是存储系统

不是数据库,也不是HDFS那样的存储方案。

它是计算层:任务调度、内存管理、容错恢复、与存储系统交互、分布式数据集API等。

典型架构是:HDFS/Hive/HBase/S3等存储+Spark计算+YARN/K8s/Standalone等资源调度。

所以Spark常被理解为"大数据计算的操作系统/发动机",存储仍然沿用Hadoop生态。

spark可以先用一句话理解:它是一个面向大数据的通用分布式计算引擎,负责"算",不负责"存"。它最早是为了替代Hadoop中又慢又难用的MapReduce计算引擎而出现的;底层数据仍可放在HDFS、Hive、HBase等存储系统中,Spark把数据读出来,在集群上分布式计算,再把结果写回去或交给下游。

二、为什么Spark比MapReduce块?

核心不是简单"内存计算"四个字,而是:

DAG有向无环图计算模型:Spark回把一个作业拆成有依赖关系的阶段,尽量形成流水线执行。

减少不必要的shuffle:MapReduce很多操作要反复落盘,Spark的DAG调度可以在不涉及跨节点数据交换时,把中间结果放在内存中连续计算,减少磁盘IO。

但注意:Spark不是"所有数据都放内存、绝不落盘"。一旦涉及shuffle,比如groupBy、join、repartition,shuffle数据仍会写磁盘。内存计算是优势,不是万能。

通俗类比:MapReduce像每道工序做完都把半成品搬进仓库;Spark像流水线,能连续传递的就尽量在内存里传下去,但遇到必须跨车间交换物料时,还是得落地。

三、Spark的核心抽象:RDD及更高层API

RDD(弹性分布式数据集):Spark Core的核心抽象,表示分布在多个节点上的、不可变的、可分区的数据集,支持并行计算和容错。

后来Spark又提供了更易用的DataFrame/Dataset,尤其通过Spark SQL用SQL方式处理结构化数据。

你可以把RDD理解成"分布在集群上的一堆数据分区 + 一串计算操作",Spark通过血缘关系实现容错:某个分区丢了,可以按计算链重算。

四、Spark的内置模块

Spark Core:基础功能,任务调度、内存管理、错误恢复、存储交互、RDD API。

Spark SQL:处理结构化数据,支持SQL/HQL,支持Hive表、Parquet、JSON等数据源。

Spark Streaming:流式计算组件;现代Spark更常用Structured Streaming做流处理。

Spark MLlib:机器学习库、分类、回归、聚类、协同过滤、模型评估等。

集群管理器:Spark可以跑在Hadoop YARN、Apache Mesos、Spark Standalone上,现代也常跑在Kubernetes上。

五、Spark怎么在集群上跑?

典型运行结果包括:

Driver:负责解析程序、生成DAG、划分阶段、调度任务。

Executor:在worker节点上执行具体task,缓存数据,汇报结果。

Cluster Manager:如YARN、Standalone、K8s,负责分配资源。

DAGScheduler/TaskScheduler:DAGScheduler把作业切成stage,TaskScheduler把task分给executor。

所以Spark程序通常分两步理解:Driver端做逻辑计划和调度,Executor端做分布式执行。

六、Spark能干什么

它是一套通用引擎,常见用途包括:

批处理ETL:清洗、转换、聚合大规模数据。

交互式查询:用Spark SQL做数据仓库分析。

流处理:实时统计、实时风控、日志处理。

机器学习:特征处理、模型训练。

图计算:GraphX等图处理场景。

数据科学:PySpark、SparkR、Scala/Java API。

相关推荐
GrowingIO技术社区21 小时前
用户行为分析怎么做?从业务目标到改进验证的完整流程
大数据·数据挖掘·数据分析
瑞克-桑切斯1 天前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器
方方洛1 天前
ray教程-28-附录G-CICD与Slurm与云上调度
人工智能·分布式·机器学习
演艺大赏1 天前
NiFi 起不来、登不上、节点被挤掉:一份按日志定位的排错清单
大数据
freejackman1 天前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
空奈qwq1 天前
【Kafka 从入门到实战】从手写一个队列到生产级消息中间件:架构、分区、消费组、零拷贝全解析
分布式·架构·kafka
wafrdggh2 天前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
大大大大晴天2 天前
OLTP、OLAP、数据湖、数据集市、湖仓一体到底是什么关系?
大数据
正在走向自律2 天前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a