記錄自己學習研究 Spark 的探索過程,為后續總結奠定基礎。
本文代碼研究以 Spark 2.3.0 源代碼為基准,如果看本文,請閱讀時,下載對應的 Spark 版本。
圖1 伯克利的數據分析軟件棧BDAS(Berkeley Data Analytics Stack)
這里要先說BDAS(伯克利數據分析棧),是伯克利大學的AMPLab打造的用於大數據的分析的一套開源軟件棧,這其中包括了這兩年火的爆棚的Spark(Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等組件,這些組件分別處理Spark Core提供內存計算框架、SparkStreaming的實時處理應用、Spark SQL的即時查詢、MLlib或MLbase的機器學習和GraphX的圖處理),也包括了冉冉升起的分布式內存系統Alluxio(Tachyon),當然還包括著名的資源管理的開源軟件Mesos。可以說Amplab最近幾年引領了大數據發展的技術創新的浪潮。從它的官網可以看到這張圖片,其中,有不少文字是有鏈接,指向各自項目的主頁的。要查看這些鏈接,可以到上面BDAS的官網。
1、論文篇
- ......
2、准備篇
3、核心篇
圖2 一個 Spark 作業執行圖
1)Spark 的初始化
- Spark 核心篇-SparkConf
- Spark 核心篇-RpcEnv
- Spark 核心篇-SparkStatusTracker
- Spark 核心篇-SecurityManager
- Spark 核心篇-SparkUI
- Spark 核心篇-MetricsSystem
2)Spark 內存模型
- ......
3)Spark 存儲體系
- Spark 核心篇-SerializerManager
- Spark 核心篇-BroadcastManager
- Spark 核心篇-ShuffleManager
- Spark 核心篇-MemoryManager
- Spark 核心篇-NettyBlockTransferService
- Spark 核心篇-BlockManagerMaster
- Spark 核心篇-BlockManager
4)Spark 計算體系
- Spark 核心篇-LiveListenerBus
- Spark 核心篇-MapOutputTracker
- Spark 核心篇-DAGScheduler
- Spark 核心篇-TaskScheduler
- Spark 核心篇-ExecutorAllocationManager
- Spark 核心篇-OutputCommitCoordinator
- Spark 核心篇-ContextClearner
5)Spark 運行模式
- ......
4、組件篇
1)Spark SQL
- ......
2)Spark Streaming
- ......
3)Spark MLib
- ......
4)Spark Graphx
- ......
5、公共篇
1)Tags