Spark介绍:
一、Spark是什么?
Spark 是一个开源的分布式大数据处理引擎,由加州大学伯克利分校 AMPLab 于 2009 年开发,2014 年成为 Apache 顶级项目。它以高速处理大规模数据和简洁的 API 设计著称,广泛应用于数据处理、分析、机器学习和流计算等场景。
二、Spark的核心特点与优势
1.高速处理能力
- 基于内存计算(Memory Computing),数据可缓存至内存中,相比 Hadoop MapReduce 的磁盘读写,速度提升 10-100 倍。
- 支持迭代计算(如机器学习、图计算),避免重复读写磁盘,进一步优化性能。
2.统一的工作负载处理框架
- 集成多种计算引擎:
- 批处理(Batch Processing):处理离线大规模数据集。
- 流处理(Stream Processing):通过 Spark Streaming 实时处理数据流。
- 交互式查询(Interactive Query):通过 Spark SQL 支持 SQL 与 DataFrame 操作。
- 机器学习(ML):集成 MLlib 库,支持分类、聚类等算法。
- 图计算(Graph Processing):通过 GraphX 处理图结构数据。
3.简洁易用的API
- 支持多种编程语言:Scala、Java、Python、R、SQL。
- 提供高层抽象数据结构(如 DataFrame/Dataset),简化复杂的数据处理逻辑。
4.高兼容性与扩展性
- 可运行于 Hadoop、Mesos、Kubernetes 等集群管理器,也可独立部署。
- 兼容 Hadoop 的 HDFS、Hive 等生态组件,方便与现有大数据架构集成。
三、Spark的核心组件
四、Spark的核心概念
-
分布式数据结构(RDD, Resilient Distributed Dataset)
- Spark 的基础数据结构,代表一个不可变的分布式数据集,可分区存储在集群节点上。
- 支持两种操作:
- 转换(Transformations):如 map、filter、join,返回新的 RDD。
- 动作(Actions):如 collect、count、save,触发计算并返回结果。
-
DAG(有向无环图)调度
- Spark 将任务分解为多个阶段(Stage),通过 DAG 调度器优化任务执行顺序,减少数据 shuffle(洗牌)开销。
-
内存管理与容错
- 自动管理内存使用,支持数据缓存和 checkpoint(检查点)机制。
- 通过 RDD 的血统(Lineage)信息实现容错,无需重新计算全量数据。
五、Spark的应用场景
- 大数据分析:处理 PB 级数据,如日志分析、用户行为分析。
- 实时流处理:实时处理社交网络消息、金融交易数据等。
- 机器学习与 AI:构建推荐系统、欺诈检测模型等。
- 数据科学与交互式查询:通过 Spark SQL 或 Jupyter 进行数据探索与可视化。
六、Spark与其他大数据框架的对比
七、如何开始使用Spark?
1.安装与部署
- 下载 Spark 二进制包(官网),支持本地模式、集群模式(Standalone/YARN/Kubernetes)。
2.编程接口
示例(Python 版,计算 Pi 值):
3.生态工具
- 结合 Jupyter Notebook、Zeppelin 进行交互式开发,或通过 Apache Livy 提交任务。
八、Spark的最新发展(截止至2025年)
- Spark 4.0+:进一步优化性能,增强对 Kubernetes 的支持,提升流处理与批处理的统一能力。
- AI 与大数据融合:强化与 TensorFlow、PyTorch 的集成,支持端到端的机器学习工作流。
- 云原生优化:针对 AWS、Azure、GCP 等云平台进行深度优化,降低部署与运维成本。
通过以上介绍,可看出 Spark 凭借其高效、灵活和统一的特性,已成为大数据处理领域的核心框架之一,适用于从简单数据处理到复杂 AI 应用的多种场景。
Spark集群搭建
需提前开启服务
一、基本的配置【一台服务器上进行】
Spark HA Install补充配置
用处:HA 高可用集群,避免单点故障问题
在上面配置的基础上,进行以下补充配置:
Spark on Yarn Cluster补充配置
配置原因:Spark 是计算引擎,其框架更擅长运算,资源调度则不是强项,而 Yarn 是非常成熟的资源调度框架
在上面配置的基础上,进行以下补充配置:
二、拷贝spark配置至其他服务器
三、启动spark集群
输入 start-all.sh
四、WEB访问界面
WEB访问:http://master01:9090/
五、高可用Spark-HA的应用
开启master服务
高可用:开启master02中的master服务
ssh root@master02 "start-master.sh"
关闭master服务
stop-master.sh
六、启动和关闭spark集群服务
启动spark集群
# 启动 zookeeper
zkServer.sh start
# 启动 hadoop hdfs
start-dfs.sh
# 启动 hadoop yarn
start-yarn.sh
# 启动spark
start-all.sh
关闭spark集群
# 关闭spark服务
stop-all.sh
# 关闭yarn服务
stop-yarn.sh
# 关闭hdfs服务
stop-dfs.sh
# 关闭zookeeper服务
zkServer.sh stop
七、任务提交
standalone【spark standalone】
yarn-cluster【yarn on yarn cluster】✔
前提:关闭spark服务 => 【stop-all.sh】
因为spark是计算引擎,其框架更擅长运算,资源调度则不是强项,而yarn是非常成熟的资源调度框架。
命令:
Spark 的出现推动了大数据从 “离线批处理” 向 “实时智能” 的转型,成为企业构建数据驱动决策系统的基石。其高效性、灵活性和生态兼容性,使其在全球 Top 500 企业中被广泛采用,支撑着从金融风控到智慧城市的各类关键应用。