什么是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集群模式--中小公司未来会更多的使用云服务