Spark大数据分析框架的核心部件包含RDD内存数据结构、Streaming流计算框架、GraphX图计算与网状数据挖掘、MLlib机器学习支持框架、Spark SQL数据检索语言、Tachyon文件系统、SparkR计算引擎等主要部件,这里作一个简单的介绍。html
1、RDD内存数据结构算法
大数据分析系统通常包括数据获取、数据清洗、数据处理、数据分析、报表输出等子系统。Spark为了方便数据处理、提高性能,专门引入了RDD数据内存结构,这一点与R的机制很是相似。用户程序只须要访问RDD的结构,与存储系统的数据调度、交换都由提供者驱动去实现。RDD能够与Haoop的 HBase、HDFS等交互,用做数据存储系统,固然也能够经过扩展支持不少其它的数据存储系统。数据库
由于有了RDD,应用模型就与物理存储分离开来,并且可以更容易地处理大量数据记录遍历搜索的状况,这一点很是重要。由于Hadoop的结构主要适用于顺序处理,要翻回去反复检索数据的话效率就很是低下,并且缺少一个统一的实现框架,由算法开发者本身去想办法实现。毫无疑问,这具备至关大的难度。 RDD的出现,使这一问题获得了必定程度的解决。但正由于RDD是核心部件、实现难度大,这一块的性能、容量、稳定性直接决定着其它算法的实现程度。从目前看,仍是常常会出现RDD占用的内存过载出问题的状况。微信
2、Streaming流计算框架网络
流是如今推特、微博、微信、图片服务以及物联网、位置服务等等的重要数据形态,所以流计算正显得史无前例的重要。流计算框架是全部互联网服务商的核心基础架构,Amazon、Microsoft都已经推出了Event消息总线云服务平台,而facebook\twitter等更是将本身的流计算框架开源。数据结构
Spark Streaming专门设计用于处理流式数据。经过Spark Streaming,能够快速地将数据推入处理环节,犹如流水线同样进行快速的加工,并在最短的时间反馈给使用。架构
3、GraphX图计算与网状数据挖掘框架
物理网络的拓扑结构,社交网络的链接关系,传统数据库的E-R关系,都是典型的图(Graph)数据模型。Hadoop主要适用于“数据量”很大的场合,对于关系的处理几乎没有支持,Hbase也是很是弱的关系处理能力。图数据结构每每须要快速屡次对数据进行扫描式遍历,RDD的引入使Spark能够更高效地处理基于图的数据结构,从而使存储和处理大规模的图网络成为可能。相似的专用于图的系统还有neo4j等。机器学习
GraphX相对于传统数据库的关系链接,能够处理更大规模、更深度的拓扑关系,能够在多个集群节点上进行运算,确实是现代数据关系研究的利器。oop
4、MLlib机器学习支持框架
经过把机器学习的算法移植到Spark架构上,一方面能够利用底层的大规模存储和RDD的数据快速访问能力,还能够利用图数据结构和集群计算的处理能力,使机器学习的运算能够在大规模的集群系统上展开,即大力拓展了机器学习算法的应用能力。
5、Spark SQL数据检索语言
这个跟基于Hive的实现有些相似,可是基于RDD理论上能提供更好的性能,同时能更方便处理如join和关系检索等操做。这个被设计为与用户交互的一个标准化入口。
6、Tachyon文件系统
Tachyon是一个相似于HDFS的实现,不过感受上更加接近于使用者,而HDFS主要是面向存储块的。
7、SparkR计算引擎
将R语言的能力应用到Spark基础计算架构上,为其提供算法引擎。
转载自中国大数据