Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目。相对于 MapReduce 的批处理计算,Spark 能够带来上百倍的性能提高,所以它成为继 MapReduce 以后,最为普遍使用的分布式计算框架。node
Apache Spark 具备如下特色:git
Term(术语) | Meaning(含义) |
---|---|
Application | Spark 应用程序,由集群上的一个 Driver 节点和多个 Executor 节点组成。 |
Driver program | 主运用程序,该进程运行应用的 main() 方法而且建立 SparkContext |
Cluster manager | 集群资源管理器(例如,Standlone Manager,Mesos,YARN) |
Worker node | 执行计算任务的工做节点 |
Executor | 位于工做节点上的应用进程,负责执行计算任务而且将输出数据保存到内存或者磁盘中 |
Task | 被发送到 Executor 中的工做单元 |
执行过程:github
Spark 基于 Spark Core 扩展了四个核心组件,分别用于知足不一样领域的计算需求。算法
Spark SQL 主要用于结构化数据的处理。其具备如下特色:架构
Spark Streaming 主要用于快速构建可扩展,高吞吐量,高容错的流处理程序。支持从 HDFS,Flume,Kafka,Twitter 和 ZeroMQ 读取数据,并进行处理。框架
Spark Streaming 的本质是微批处理,它将数据流进行极小粒度的拆分,拆分为多个批处理,从而达到接近于流处理的效果。机器学习
MLlib 是 Spark 的机器学习库。其设计目标是使得机器学习变得简单且可扩展。它提供了如下工具:分布式
GraphX 是 Spark 中用于图形计算和图形并行计算的新组件。在高层次上,GraphX 经过引入一个新的图形抽象来扩展 RDD(一种具备附加到每一个顶点和边缘的属性的定向多重图形)。为了支持图计算,GraphX 提供了一组基本运算符(如: subgraph,joinVertices 和 aggregateMessages)以及优化后的 Pregel API。此外,GraphX 还包括愈来愈多的图形算法和构建器,以简化图形分析任务。函数
更多大数据系列文章能够参见 GitHub 开源项目: 大数据入门指南工具