What Is Apache Spark?
- 速度方面:Spark扩展了MapReduce模型,可以更高效地提供多种类型的计算,包括交互式查询和流处理。Spark为speed所提供的最大能力就是内存计算。
- 通用性方面:Spark被设计以支持多种工作负载,包括批应用,迭代算法,交互式查询和流。
A Unified Stack
- Spark项目包含很多紧密集成的组件
Spark Core
- 包含Spark的基础功能,包括任务调度、内存管理、容错、与存储系统交互等组件
- 定义了Spark的主要编程抽象--RDD
Spark SQL
- Spark‘s package for working with structured data --> 用于处理结构化数据
- 允许通过SQL、HQL查询数据,支出多种数据源:Hive tables、Parquet以及JSON
- Spark SQL通过RDD操作可以允许开发者将SQL查询与可编程的数据操作混合
Spark Streaming
- enables processing of live streams of data
- 数据流的例子有:web server产生的logfiles、web service产生的查询信息等
MLib
- a library containing common machine learning functionality
- 提供了多种机器学习算法,包括分类、回归、聚类、协同过滤以及模型验证和数据导入等等
GraphX
- a library for manipulating graphs and performing graph-parallel computations
- 其API提供了创建带有任意属性的有向图的功能,以及对图的多种操作
Cluster Managers
- Spark被设计为可以高效地扩展到上千台计算节点
- 为了实现这种可扩展性并且最大化灵活性,Spark可以允许在很多种cluster managers之上,包括Hadoop YARN, Apache Mesos以及Spark内包含的Standalone Scheduler