餘老師帶你學習大資料-Spark快速大資料處理第六章第一節Spark總體介紹

weixin_45810046發表於2020-11-18

Spark是什麼

Spark是資料處理引擎,Hadoop的YARN是叢集管理的元件,HDFS是資料儲存的元件,MapReduce是資料處理的引擎。通常一套大資料解決方案包括了很多元件,有儲存、計算、MapReduce、Spark等等。Spark做資料處理引擎,可以說是給你一個計算平臺,承擔上面的計算任務或者演算法,由自己提供的,而在資料處理框架之上是需要一套分析軟體,那麼這套分析軟體是根據業務特點去程式設計的。Spark是生態系統,Spark有資料處理引擎,同時在引擎之上做流處理,應用範圍越來越廣。Spark的突出特點是使用了記憶體運算和基於docker、基於計算圖的方式去表述應用。

Spark是大一統的資料處理引擎

在這裡插入圖片描述

這幅圖展示了Spark包括了的元件。Spark進入SQL,Datasets,DataFrames提供了結構化分析手段。Structured Streaming是處理流資料,關係型的查詢就用SQL去處理流式資料。這兩個包括了現在資料處理引擎的兩個重要特點,第一個特點是處理結構化資料,將資料抽象成結構化資料。第二個特點是Structured流處理方式,流處理是實時大資料的一個核心理論。RDD是Spark發展初期一個重要的概念,彈性的資料集,進入這種資料集去構架Spark引擎,即將被其他的API所替代,比如Spark SQL,因為Spark SQL可以獲得更高的效能。Spark Streaming也是Spark初期流處理的API框架,但是隨著流處理理論的發展,這種API已經不適合現在流處理的發展了,Structured Streaming代替了Spark Streaming。MLlib是機器學習和GraphX是處理圖。這些涵蓋了大資料引擎的基本結構,批處理、流處理和圖處理就是Spark是大一統的資料處理引擎的核心。

為什麼不選擇RDD

RDD是核心的但是是老的API,Flink的核心框架就是Datasets和DataFrames,所有的資料抽象成一個集合或者一個流。RDD這種彈性的資料集不能讓使用者更理解內部機制或者更好的使用這個軟體。所以說Spark選擇將隱藏起來,而推出做流處理和批處理相應API的重要原因。無法判斷是Flink學習了Spark還是Spark學習了Flink,我們得不出這個結論,但是,從現在大資料發展的理論上看,Dataset和DataStream這兩種抽象是我們分析引擎的核心主流思想,都需要向著兩個思想去融合,Spark也做到了這一點,這是為什麼不選擇RDD作為Spark主要API提供給使用者的原因。

詳細學習內容可觀看Spark快速大資料處理掃一掃~~~或者引擎搜尋Spark餘海峰

在這裡插入圖片描述

相關文章