参考文档:https://files.cnblogs.com/files/han-guang-xue/spark1.pdf
参考网址: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)区别开。
具体实现: