作為分布式應用,Spark的數據存儲在不同機器上。這就涉及到數據的傳輸,元數據的管理等內容。而且由於Spark可以利用內存和磁盤作為存儲介質,這還涉及到了內存和磁盤的數據管理。 Spark存儲體系架構 Spark存儲(主要由BlockManager來完成)主要完成了寫入數據塊,如果需要備份 ...
本篇文章主要剖析BlockManager相關的類以及總結Spark底層存儲體系。 總述 先看 BlockManager相關類之間的關系如下: 我們從NettyRpcEnv 開始,做一下簡單說明。 NettyRpcEnv是Spark 的默認的RpcEnv實現,它提供了個Spark 集群各個節點的底層通信環境,可以參照文章spark 源碼分析之十二 Spark RPC剖析之Spark RPC總結做深入 ...
2019-07-23 19:09 0 585 推薦指數:
作為分布式應用,Spark的數據存儲在不同機器上。這就涉及到數據的傳輸,元數據的管理等內容。而且由於Spark可以利用內存和磁盤作為存儲介質,這還涉及到了內存和磁盤的數據管理。 Spark存儲體系架構 Spark存儲(主要由BlockManager來完成)主要完成了寫入數據塊,如果需要備份 ...
上篇文章 spark 源碼分析之十六 -- Spark內存存儲剖析 主要剖析了Spark 的內存存儲。本篇文章主要剖析磁盤存儲。 總述 磁盤存儲相對比較簡單,相關的類關系圖如下: 我們先從依賴類 DiskBlockManager 剖析 ...
上篇spark 源碼分析之十五 -- Spark內存管理剖析 講解了Spark的內存管理機制,主要是MemoryManager的內容。跟Spark的內存管理機制最密切相關的就是內存存儲,本篇文章主要介紹Spark內存存儲。 總述 跟內存存儲的相關類的關系 ...
RpcEndpoint 文檔對RpcEndpoint的解釋:An end point for the RPC that defines what functions to trigger given ...
對SerializerManager的說明: 它是為各種Spark組件配置序列化,壓縮和加密的組件,包括自動選擇用於shuffle的Serializer。spark中的數據在network IO 或 local disk IO傳輸過程中。都需要序列化。其默認的 Serializer ...
本篇文章主要剖析Spark的內存管理體系。 在上篇文章 spark 源碼分析之十四 -- broadcast 是如何實現的?中對存儲相關的內容沒有做過多的剖析,下面計划先剖析Spark的內存機制,進而進入內存存儲,最后再剖析磁盤存儲。本篇文章主要剖析內存管理機制。 整體介紹 Spark內存 ...
在前面源碼剖析介紹中,spark 源碼分析之二 -- SparkContext 的初始化過程 中的SparkEnv和 spark 源碼分析之四 -- TaskScheduler的創建和啟動過程 中的ClientApp啟動過程中,都涉及到了Spark的內置RPC的知識。本篇專門把RPC 拿出來剖析 ...
終於開始看Spark源碼了,先從最常用的spark-shell腳本開始吧。不要覺得一個啟動腳本有什么東東,其實里面還是有很多知識點的。另外,從啟動腳本入手,是尋找代碼入口最簡單的方法,很多開源框架,其實都可以通過這種方式來尋找源碼入口。 先來介紹一下Spark-shell是什么 ...