標籤:
Spark大資料分析架構的核心組件
Spark大資料分析架構的核心組件包含RDD記憶體資料結構、StreamingStreamCompute架構、GraphX圖計算與網狀資料採礦、MLlib機器學習支援架構、Spark SQL資料檢索語言、Tachyon檔案系統、SparkR計算引擎等主要組件。這裡做一個簡單的介紹。
一、RDD記憶體資料結構
大資料分析系統一般包括資料擷取、資料清洗、資料處理、資料分析、報表輸出等子系統。Spark為了方便資料處理、提升效能,專門引入了RDD資料記憶體結構,這一點與R的機制非常類似。使用者程式只需要訪問RDD的結構,與儲存系統的資料調度、交換都由提供者驅動去實現。RDD可以與Haoop的HBase、HDFS等互動,用作資料存放區系統,當然也可以通過擴充支援很多其它的資料存放區系統。
因為有了RDD,應用程式模型就與實體儲存體分離開來,而且能夠更容易地處理大量資料記錄遍曆搜尋的情況,這一點非常重要。因為Hadoop的結構主要適用於順序處理,要翻回去反覆檢索資料的話效率就非常低下,而且缺乏一個統一的實現架構,由演算法開發人員自己去想辦法實現。毫無疑問,這具有相當大的難度。RDD的出現,使這一問題得到了一定程度的解決。但正因為RDD是核心組件、實現難度大,這一塊的效能、容量、穩定性直接決定著其它演算法的實現程度。從目前看,還是經常會出現RDD佔用的記憶體過載出問題的情況。
二、StreamingStreamCompute架構
流是現在推特、微博、、圖片服務以及物聯網、位置服務等等的重要資料形態,因此StreamCompute正顯得前所未有的重要。StreamCompute架構是所有互連網服務商的核心基礎架構,Amazon、Microsoft都已經推出了Event訊息匯流排雲端服務平台,而facebook\twitter等更是將自己的StreamCompute架構開源。
Spark Streaming專門設計用於處理流式資料。通過Spark Streaming,可以快速地將資料推入處理環節,猶如流水線一樣進行快速的加工,並在最短的時間反饋給使用。
三、GraphX圖計算與網狀資料採礦
物理網路的拓撲結構,社交網路的串連關係,傳統資料庫的E-R關係,都是典型的圖(Graph)資料模型。Hadoop主要適用於“資料量”很大的場合,對於關係的處理幾乎沒有支援,Hbase也是非常弱的關係處理能力。圖資料結構往往需要快速多次對資料進行掃描式遍曆,RDD的引入使Spark可以更高效地處理基於圖的資料結構,從而使儲存和處理大規模的圖網路成為可能。類似的專用於圖的系統還有neo4j等。
GraphX相對於傳統資料庫的關係串連,可以處理更大規模、更深度的拓撲關係,可以在多個叢集節點上進行運算,確實是現代資料關係研究的利器。
四、MLlib機器學習支援架構
通過把機器學習的演算法移植到Spark架構上,一方面可以利用底層的大規模儲存和RDD的資料快速存取能力,還可以利用圖資料結構和叢集計算的處理能力,使機器學習的運算可以在大規模的叢集系統上展開,即大力拓展了機器學習演算法的應用能力。
五、Spark SQL資料檢索語言
這個跟基於Hive的實現有些類似,但是基於RDD理論上能提供更好的效能,同時能更方便處理如join和關係檢索等操作。這個被設計為與使用者互動的一個標準化入口。
六、Tachyon檔案系統
Tachyon是一個類似於HDFS的實現,不過感覺上更加接近於使用者,而HDFS主要是面向儲存塊的。
七、SparkR計算引擎
將R語言的能力應用到Spark基礎計算架構上,為其提供演算法引擎。
Spark大資料分析架構的核心組件