参考文档:https://files.cnblogs.com/files/han-guang-xue/spark1.pdfhtml
参考网址:https://www.cnblogs.com/wangrd/p/6232826.html算法
对于spark我的理解:编程
spark与mapreduce最大不一样之处:spark是能够将某个特定的且反复使用的数据集的迭代算法高效运行,mapreduce处理数据须要与其余节点的或是框架保持高度并行,没法实现这样的效果数据结构
摘自:sanqima框架
Spark中最核心的概念是RDD(弹性分布式数据集),近年来,随着数据量的不断增加,分布式集群并行计算(如MapReduce、Dryad等)被普遍运用于处理日益增加的数据。这些设计优秀的计算模型大都具备容错性好、可扩展性强、负载平衡、编程方法简单等优势,从而使得它们受到众多企业的青睐,被大多数用户用来进行大规模数据的处理。
可是,MapReduce这些并行计算大都是基于非循环的数据流模型,也就是说,一次数据过程包含从共享文件系统读取数据、进行计算、完成计算、写入计算结果到共享存储中,在计算过程当中,不一样计算节点之间保持高度并行,这样的数据流模型使得那些须要反复使用一个特定数据集的迭代算法没法高效地运行。
Spark和Spark使用的RDD就是为了解决这种问题而开发出来的,Spark使用了一种特殊设计的数据结构,称为RDD。RDD的一个重要特征是,分布式数据集能够在不一样的并行环境当中被重复使用,这个特性将Spark和其余并行数据流模型框架(如MapReduce)区别开。分布式
具体实现:spa