01 Spark架構與執行流程

2022-06-29 21:21:10 字數 1566 閱讀 7038

基本架構;

spark core:

包含spark的基本功能,包含任務排程,記憶體管理,容錯機制等,內部定義了rdds(彈性分布式資料集),提供了很多apis來建立和操作這些rdds。為其他元件提供底層的服務。

spark sql:

spark處理結構化資料的庫,就像hive sql,mysql一樣,企業中用來做報表統計。

spark streaming:

實時資料流處理元件,類似storm。spark streaming提供了api來操作實時流資料。企業中用來從kafka接收資料做實時統計。

mllib:

乙個包含通用機器學習功能的包,machine learning lib包含分類,聚類,回歸等,還包括模型評估和資料匯入。mllib提供的上面這些方法,都支援集群上的橫向擴充套件。

graphx:

處理圖的庫(例如,社交網路圖),並進行圖的平行計算。像spark streaming,spark sql一樣,它也繼承了rdd api。它提供了各種圖的操作,和常用的圖演算法,例如pangerank演算法。

spark提供了全方位的軟體棧,只要掌握spark一門程式語言就可以編寫不同應用場景的應用程式(批處理,流計算,圖計算等)。spark主要用來代替hadoop的mapreduce部分。

hadoop mapreduce缺點:

表達能力有限

磁碟io開銷大,任務之間的銜接涉及io開銷

延遲高,map任務要全部結束,reduce任務才能開始。

spark借鑑hadoop mapreduce優點的同時,解決了mapreuce所面臨的問題,有如下優點:

spark的計算模式也屬於mapreduce,但不侷限於map和reduce操作,還提供多種資料集操作型別,程式設計模型比hadoop mapreduce更靈活。

spark提供了記憶體計算,可將中間結果放到記憶體中,對於迭代運算效率更高

spark基於dag的任務排程執行機制,要優於hadoop mapreduce的迭代執行機制。

spark執行架構及流程

基本概念:

與hadoop mapreduce計算框架相比,spark所採用的executor有兩個優點:

利用多執行緒來執行具體的任務減少任務的啟動開銷;

executor中有乙個blockmanager儲存模組,會將記憶體和磁碟共同作為儲存裝置,有效減少io開銷;

spark執行基本流程:

為應用構建起基本的執行環境,即由driver建立乙個sparkcontext進行資源的申請、任務的分配和監控

資源管理器為executor分配資源,並啟動executor程序

sparkcontext根據rdd的依賴關係構建dag圖,dag圖提交給dagscheduler解析成stage,然後把乙個個taskset提交給底層排程器taskscheduler處理。

executor向sparkcontext申請task,taskscheduler將task發放給executor執行並提**用程式**。

task在executor上執行把執行結果反饋給taskscheduler,然後反饋給dagscheduler,執行完畢後寫入資料並釋放所有資源。

spark執行架構特點:

01 Spark架構與執行流程

1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係,為什麼要引入yarn和spark。答 hadoop對應於google三駕馬車 hdfs對應於gfs,即分布式檔案系統,mapreduce即平行計算框架,hbase對應於bigtable,即分布式...

01 Spark架構與執行流程

1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係,為什麼要引入yarn和spark。hdfs hadoop分布式檔案系統 源自於google的gfs 發表於2003年10月,hdfs是gfs的實現版。hdfs是hadoop體系中資料儲存管理的基...

01 Spark架構與執行流程

1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係,為什麼要引入yarn和spark。1 引用yarn是為了解決原始hadoop擴充套件性差,不支援多計算框架而提出的 2 spark的速度比hadoop更快。同樣的事情,hadoop要兩分鐘,而s...