Spark是一个基于内存的快速、通用、可扩展的大数据分析计算引擎。
文档查看地址:https://spark.apache.org/docs/3.3.0/
下载地址:
Spark和Hadoop
Spark 并不能完全替代 Hadoop,Spark 主要用于替代Hadoop中的
MapReduce
计算模型。存储依然可以使用
HDFS
,但是中间结果可以存放在内存中。调度可以使用 Spark 内置的,也可以使用更成熟的调度系统
YARN
等。Spark 已经很好地融入了 Hadoop 生态圈,它可以借助于
YARN
实现资源调度管理,借助于HDFS
实现分布式存储。Hadoop 可以使用廉价的、异构的机器来做分布式存储与计算,但 Spark 对硬件的要求稍高一些,对内存与 CPU 有一定的要求。
生态圈
Spark Core:
- 实现了 Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。
Spark SQL:
- Spark 用来操作结构化数据的程序包。
- 通过 Spark SQL,我们可以使用 SQL 操作数据。
Spark Streaming:
- Spark 提供的对实时数据进行流式计算的组件,提供了用来操作数据流的 API。
Spark MLlib:
- 提供常见的机器学习(ML)功能的程序库。
- 包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。
GraphX(图计算):
- Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。
集群管理器:
- Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。
Structured Streaming:
- 处理结构化流,统一了离线和实时的 API。
运行模式
Spark集群分为两种模式:单机模式与集群模式
Local模式:
- 在本地部署单个Spark服务
Standalone模式:
- Spark自带的任务调度模式(国内常用)
YARN模式:
- Spark使用Hadoop的YARN组件进行资源与任务调度(国内最常用)
Mesos模式:
- Spark使用Mesos平台进行资源与任务的调度(国内很少用)