參考文檔: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)區別開。
具體實現: