《Spark核心原始碼分析與開發實戰》讀書筆記之一
阿新 • • 發佈:2018-12-12
第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查詢的大規模並行查詢引擎
核心思想:通過一個自適應優化框架,隨著時間的推移,從原始資料建立並維護一組多維樣本,通過一個動態樣本選擇策略,選擇一個適度大小的示例。