前言
準 備 篇
dy 章 環境準備2
1.1 運行環境準備2
1.1.1 安裝JDK3
1.1.2 安裝Scala3
1.1.3 安裝Spark4
1.2 Spark初體驗4
1.2.1 運行spark-shell4
1.2.2 執行word count5
1.2.3 剖析spark-shell7
1.3 閱讀環境準備11
1.4 Spark源碼編譯與調試13
1.5 小結17
第2章 Spark設計理念與基本架構18
2.1 初識Spark18
2.1.1 Hadoop MRv1的局限18
2.1.2 Spark使用場景20
2.1.3 Spark的特點20
2.2 Spark基礎知識20
2.3 Spark基本設計思想22
2.3.1 Spark模塊設計22
2.3.2 Spark模型設計24
2.4 Spark基本架構25
2.5 小結26
核心設計篇
第3章 SparkContext的初始化28
3.1 SparkContext概述28
3.2 創建執行環境SparkEnv30
3.2.1 安全管理器SecurityManager31
3.2.2 基於Akka的分布式消息係統ActorSystem31
3.2.3 map任務輸齣跟蹤器mapOutputTracker32
3.2.4 實例化ShuffleManager34
3.2.5 shuffle綫程內存管理器ShuffleMemoryManager34
3.2.6 塊傳輸服務BlockTransferService35
3.2.7 BlockManagerMaster介紹35
3.2.8 創建塊管理器BlockManager36
3.2.9 創建廣播管理器Broadcast-Manager36
3.2.10 創建緩存管理器CacheManager37
3.2.11 HTTP文件服務器HttpFile-Server37
3.2.12 創建測量係統MetricsSystem39
3.2.13 創建SparkEnv40
3.3 創建metadataCleaner41
3.4 SparkUI詳解42
3.4.1 listenerBus詳解43
3.4.2 構造JobProgressListener46
3.4.3 SparkUI的創建與初始化47
3.4.4 Spark UI的頁麵布局與展示49
3.4.5 SparkUI的啓動54
3.5 Hadoop相關配置及Executor環境變量54
3.5.1 Hadoop相關配置信息54
3.5.2 Executor環境變量54
3.6 創建任務調度器TaskScheduler55
3.6.1 創建TaskSchedulerImpl55
3.6.2 TaskSchedulerImpl的初始化57
3.7 創建和啓動DAGScheduler57
3.8 TaskScheduler的啓動60
3.8.1 創建LocalActor60
3.8.2 ExecutorSource的創建與注冊62
3.8.3 ExecutorActor的構建與注冊64
3.8.4 Spark自身ClassLoader的創建64
3.8.5 啓動Executor的心跳綫程66
3.9 啓動測量係統MetricsSystem69
3.9.1 注冊Sources70
3.9.2 注冊Sinks70
3.9.3 給Sinks增加Jetty的Servlet-ContextHandler71
3.10 創建和啓動ExecutorAllocation-Manager72
3.11 ContextCleaner的創建與啓動73
3.12 Spark環境更新74
3.13 創建DAGSchedulerSource和BlockManagerSource76
3.14 將SparkContext標記為激活77
3.15 小結78
第4章 存儲體係79
4.1 存儲體係概述79
4.1.1 塊管理器BlockManager的實現79
4.1.2 Spark存儲體係架構81
4.2 shuffle服務與客戶端83
4.2.1 Block的RPC服務84
4.2.2 構造傳輸上下文Transpor-tContext85
4.2.3 RPC客戶端工廠Transport-ClientFactory86
4.2.4 Netty服務器TransportServer87
4.2.5 獲取遠程shuffle文件88
4.2.6 上傳shuffle文件89
4.3 BlockManagerMaster對Block-Manager的管理90
4.3.1 BlockManagerMasterActor90
4.3.2 詢問Driver並獲取迴復方法92
4.3.3 嚮BlockManagerMaster注冊BlockManagerId93
4.4 磁盤塊管理器DiskBlockManager94
4.4.1 DiskBlockManager的構造過程94
4.4.2 獲取磁盤文件方法getFile96
4.4.3 創建臨時Block方法create-TempShuffleBlock96
4.5 磁盤存儲DiskStore97
4.5.1 NIO讀取方法getBytes97
4.5.2 NIO寫入方法putBytes98
4.5.3 數組寫入方法putArray98
4.5.4 Iterator寫入方法putIterator98
4.6 內存存儲MemoryStore99
4.6.1 數據存儲方法putBytes101
4.6.2 Iterator寫入方法putIterator詳解101
4.6.3 安全展開方法unrollSafely102
4.6.4 確認空閑內存方法ensureFreeSpace105
4.6.5 內存寫入方法putArray107
4.6.6 嘗試寫入內存方法tryToPut108
4.6.7 獲取內存數據方法getBytes109
4.6.8 獲取數據方法getValues110
4.7 Tachyon存儲TachyonStore110
4.7.1 Tachyon簡介111
4.7.2 TachyonStore的使用112
4.7.3 寫入Tachyon內存的方法putIntoTachyonStore113
4.7.4 獲取序列化數據方法getBytes113
4.8 塊管理器BlockManager114
4.8.1 移齣內存方法dropFrom-Memory114
4.8.2 狀態報告方法reportBlockStatus116
4.8.3 單對象塊寫入方法putSingle117
4.8.4 序列化字節塊寫入方法putBytes118
4.8.5 數據寫入方法doPut118
4.8.6 數據塊備份方法replicate121
4.8.7 創建DiskBlockObjectWrit
評分
評分
評分
評分
評分
評分
評分
評分
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有