Spark官方介绍
Spark是什么
Apache Spark是用大规模数据处理的统一分析引擎
Spark基于内存计算,提高在大数据环境下数据处理的实时性,同时保证了容错性和高可伸缩性,允许用户将spark部署在大容量硬件之上,形成集群。
官方
Spark特点
快: Spark 计算速度时是MapReduce计算速度的10-100倍
易用: MapReduce支持1种计算模型,SparK支持更多的计算模型
通用: Spark 能够进行离线计算,交互式查询,快速查询,实时计算,机器学习,图计算
容错性:Spark支持大数据中yarn调度,支持mesos。可以处理hadoop计算的数据
Spark发展史
- 2009年诞生于美国加州大学伯克利分校AMP实验室
- 2014年,Spark成为Apche的顶级项目
Spark为什么会流行
原因1: 优秀的数据模型和计算抽象
Spark将多个RDD之间的中间数据写入到内存,MapReduce将中间的数据写入到磁盘,内存比硬盘速度快
原因2: 完善的生态图
- Spark Core: Spark基本功能
- Spark sql:操作结构化数据
- Spark Streaming: 对实时数据进行流式处理
- Spark MLlib: 机器学习
- GraphX:用于图计算
Hadoop与Spark的对比
|
Hadoop |
Spark |
类型 |
基础平台, 包含计算, 存储, 调度 |
分布式计算工具 |
场景 |
大规模数据集上的批处理 |
迭代计算, 交互式计算, 流计算 |
价格 |
对机器要求低, 便宜 |
对内存有要求, 相对较贵 |
编程范式 |
Map+Reduce, API 较为底层, 算法适应性差 |
RDD组成DAG有向无环图, API 较为顶层, 方便使用 |
数据存储结构 |
MapReduce中间计算结果存在HDFS磁盘上, 延迟大 |
RDD中间运算结果存在内存中 , 延迟小 |
运行方式 |
Task以进程方式维护, 任务启动慢 |
Task以线程方式维护, 任务启动快 |
Spark运行模式
- local 本地模式 开发测试使用
- standalone 独立集群模式 开发测试使用
- standalone-Ha 高可用模式 生产环境使用
- on yarn 集群模式-生产环境使用
- on mesos 集群模式 国内使用较少
- on cloud 集群模式 中小公司未来会更多的使用云服务