一.Spark生态系统
(一)应用场景
1.复杂的批量数据处理 (小时级)
2.基于历史数据的交互式查询 (分钟级、秒级)
3.基于实时数据流的数据处理 (毫级、秒级 )
4.基于历史数据的数据挖掘
5.图结构数据的处理
(二)生态系统中的组件
- Spark Core : 主要面向批数据处理。比如内存计算、任务调度、部署模式、故障恢复等
- Spark SQL : 用于结构化数据处理的组件。
- Spark Streaming : 是一种流计算框架,可以支持高吞吐量、可容错处理的实错的流处理引擎。
- Structured Sreaming : 是一种基于Spark SQL 引擎构建的、可扩展且容错的流处理引擎。
- MLIib : 提供了常用机器学习算法的实现,包括聚类、分类、回归、协同过滤等。
- GraphX : 性能良好,拥有丰富的功能和运算符。
二 .Spark 运行架构
(一)基本概念
Spark运行架构是由七部分组成,有RDD(弹性分布式数据集)、DAG(有向无环图)、Executor(应用程序存储数据)、Application(用户编写的Spark应用程序)、Task(运行在Executor上的工作单元)、Job(一个作业包含多个RDD的各种操作)、Stage(作业的基本调度单位)。
(三). Spark的部署方式 - Standalone模式
- Spark on Mesos模式 : Mesos是一种资源调度管理框架,可以为运行在它上面的Spark提供服务。
- Spark on YAPN模式 : Spark可运行与YAPN之上,与Hadoop进行统一部署,资源调度和调度依赖YAPN , 分布式存储则依赖HDFS。