1. 程式人生 > >《Spark核心原始碼分析與開發實戰》讀書筆記之一

《Spark核心原始碼分析與開發實戰》讀書筆記之一

第1章 Spark系統概述

1.1 Spark是什麼

1. Spark比Hadoop快在哪裡

(1)Spark使用記憶體計算,而Hadoop使用IO

(2)Hadoop的計算是按部就班一步一步進行的,而Spark則是提前生成了DAG,優化了運算路徑

 

1.2 Spark生態系統BDAS

1. BDAS:伯克利資料分析棧

2. Spark Core

Spark將資料在分散式環境下分割槽,然後將作業轉化為有向無環圖(DAG),減少了多次計算之間中間結果I/O開銷,並分階段進行DAG的排程和任務的分散式並行處理。Spark採用容錯的,高伸縮性的AKKA作為通訊框架,減少了多執行緒併發執行所帶來的不確定性。還採用多執行緒池模型來減少task的啟動開銷

RDD可以想象為一個個partition,RDD之間相互具有依賴關係

計算跟著資料走

3. Spark SQL

4. Spark Streaming:核心思想是微批處理

相對於Storm的優勢:吞吐量更大,更高效的容錯處理

5. Spark GraphX

核心抽象是:一種點和邊都帶有屬性的有向多重圖

6. MLlib

支援四種常見的機器學習問題:分類,迴歸,聚類和協同過濾

7. Tachyon

高容錯,高效能的開源的分散式記憶體檔案系統(記憶體中的HDFS)

8. BlinkDB

在海量資料上進行互動式SQL查詢的大規模並行查詢引擎

核心思想:通過一個自適應優化框架,隨著時間的推移,從原始資料建立並維護一組多維樣本,通過一個動態樣本選擇策略,選擇一個適度大小的示例。