什么是Spark
是基于内存的用于大规模数据处理(离线计算、实时计算、快速查询)的统一分析引擎。
也是一个生态系统。
Spark的特点
- 速度快
比MapReduce块10-100倍
- 易用(算法多)
MR只支持一种计算 算法,Spark支持多种算法。
- 通用
Spark可以支持离线计算、实时计算、快速查询(交互式)、机器学习、图计算
- 兼容性强
支持大数据中现有的Yarn. Mesos等多种调度平台,可以处理hadoop支持的数据。
Spark发展史
2009 年诞生于加州大学伯克利分校AMP 实验室
2014年成为 Apache 的顶级项目
Spark为什么会流行
原因1:优秀的数据模型和计算抽
支持多种计算模型,而且基于内存(内存比硬盘速度快)
RDD 是一个可以容错且并行的数据结构
原因2:完善的生态圈(Spark生态圈)
Spark Core:实现Spark 基本功能(RDD)
SparK SQL: 操作结构化数据
Spark Streaming : 对实时数据进行流式计算
Spark MLlib : 机器学习(ML)功能
GraphX(图计算) : 用于图计算的API
Hadoop 对比Spark
| Hadoop(HDFS-MR-YARN) | Spark |
类型 | 基础平台, 包含计算, 存储, 调度 | 分布式计算工具 |
场景 | 大规模数据集上的批处理 | 迭代计算, 交互式计算, 流计算 |
价格 | 对机器要求低, 便宜 | 对内存有要求, 相对较贵 |
编程范式 | Map+Reduce, API 较为底层, 算法适应性差 | RDD组成DAG有向无环图, API 较为顶层, 方便使用 |
数据存储结构 | MapReduce中间计算结果存在HDFS磁盘上, 延迟大 | RDD中间运算结果存在内存中 , 延迟小 |
运行方式 | Task以进程方式维护, 任务启动慢 | Task以线程方式维护, 任务启动快 |
Spark运行模式
1.local本地模式(单机)--开发测试使用
2.standalone独立集群模式--开发测试使用
3.standalone-HA高可用模式--生产环境使用
4.on yarn集群模式--生产环境使用
5.on mesos集群模式--国内使用较少
6.on cloud集群模式--中小公司未来会更多的使用云服务