Spark的概念和架構

2021-09-27 09:20:33 字數 1431 閱讀 7005

apache spark是乙個快如閃電的統一的分析引擎(僅僅是一款分析引擎,不提供儲存服務)。

:spark提供統一api訪問介面實現批處理流處理sqlmachine learinng圖形關係分析等。

使用先進的dag(有向無環圖)設計。

mapreduce:向量計算起點(map並行度)–>終點(reduce並行度)

spark:有向無環圖 起點-> 第一階段(並行度)–>第二階段(並行度)–>…–>第n階段(並行度)–>終點

和mapreduce不同,mapreduce中間結果(溢寫檔案)會儲存到磁碟,然後在開啟下一輪的計算,計算的效能很大程度受限於磁碟讀寫,而spark的計算將任務拆分成若干個stage,每個階段的計算結果是可以快取在記憶體中,因此在做迭代計算的時候,計算結果是可以復用的,因此極大降低因為重複計算所需的時間和磁碟讀寫對效能消耗。

spark sql可利用query optimizer優化使用者sql。

2023年spark在加州伯克利amp實驗室誕生,2010首次開源後該專案就受到很多開發人員的喜愛,2023年6月份開始在apache孵化,2023年2月份正式成為apache的頂級專案。spark發展如此之快是因為spark在計算層方面明顯優於hadoop的map reduce這磁碟迭代計算,因為spark可以使用記憶體對資料做計算,而且計算的中間結果也可以快取在記憶體中,這就為後續的迭代計算節省了時間,大幅度的提公升了針對於海量資料的計算效率。

spark也給出了在使用mapreduce和spark做線性回歸計算(演算法實現需要n次迭代)上,spark的速率幾乎是mapreduce計算10~100倍這種計算速度。

spark之所以這麼快被程式設計師所接收,不僅僅單純是因為spark是乙個基於記憶體的批處理框架,也和spark的戰略部署息息相關。不僅如此spark在設計理念中也提出了one stack ruled them all戰略,並且提供了基於spark批處理之上的計算服務分支例如:spark的互動查詢、近實時流處理、機器學習、grahx 圖形關係計算等。

從圖中不難看出apache spark處於計算層,spark專案在戰略上啟到了承上啟下的作用,並沒有廢棄原有以hadoop為主體的大資料解決方案。因為spark向下可以計算來自於hdfs、hbase、cassandra和亞馬遜s3檔案伺服器的資料,也就意味著使用spark作為計算層,使用者原有的儲存層架構無需改動。

Spark基礎概念01 初識Spark架構和RDD

四 核心api 五 rdd是什麼,有哪些特點 六 rdd的特性 七 rdd常用的建立方式 八 rdd常用的運算元 轉換 動作 九 基於rdd的應用程式開發 十 shuffle機制 十一 累加器 可自定義 1 在驅動程式中,通過sparkcontext主導應用的執行 2 sparkcontext可以連...

spark基本概念與執行架構

apache spark是乙個分布式計算框架,旨在簡化執行於計算機集群上的並行程式的編寫。rdd 彈性分布式資料集 resilient distributed dataset 是分布式記憶體的乙個抽象概念,提供了乙個高度受限的共享記憶體模型。乙個rdd包含多個分割槽 partition dag 有向...

Spark執行架構和機制

spark總體架構包括 集群資源管理器 cluster manager 多個執行作業任務的工作節點 worker node 每個應用的任務控制節點 driver 和每個工作節點上負責具體任務的執行程序 executor cluster manager負責申請和管理在worker node上執行應用所...