《Spark大數據商業實戰三部曲:內核解密 商業案例 性能調優》PDF電子書

Spark大數據商業實戰三部曲:內核解密 商業案例 性能調優

《Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優》基于Spark 2.2.X,以Spark商業案例實戰和Spark在生產環境下幾乎所有類型的性能調優為核心,以Spark內核解密為基石,分為上篇、中篇、下篇,對企業生產環境下的Spark商業案例與性能調優抽絲剝繭地進行剖析。上篇基于Spark源碼,從一個動手實戰案例入手,循序漸進地全面解析了Spark 2.2新特性及Spark內核源碼;中篇選取Spark開發中*有代表的經典學習案例,深入淺出地介紹,在案例中綜合應用Spark的大數據技術;下篇性能調優內容基本wan全覆蓋了Spark在生產環境下的所有調優技術。

《Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優》目錄

上篇 內核解密

第壹章 電光石火間體驗Spark 2.2開發實戰… 2

1.1 通過RDD實戰電影點評系統入門及源碼閱讀… 2

1.1.1 Spark核心概念圖解… 2

1.1.2 通過RDD實戰電影點評系統案例… 4

1.2 通過DataFrame和DataSet實戰電影點評系統… 7

1.2.1 通過DataFrame實戰電影點評系統案例… 7

1.2.2 通過DataSet實戰電影點評系統案例… 10

1.3 Spark 2.2源碼閱讀環境搭建及源碼閱讀體驗… 11

第2章 Spark 2.2技術及原理… 14

2.1 Spark 2.2綜述… 14

2.1.1 連續應用程序… 14

2.1.2 新的API 15

2.2 Spark 2.2 Core. 16

2.2.1 第2代Tungsten引擎… 16

2.2.2 SparkSession. 16

2.2.3 累加器API 17

2.3 Spark 2.2 SQL. 19

2.3.1 Spark SQL. 20

2.3.2 DataFrame和Dataset API 20

2.3.3 Timed Window.. 21

2.4 Spark 2.2 Streaming. 21

2.4.1 Structured Streaming. 21

2.4.2 增量輸出模式… 23

2.5 Spark 2.2 MLlib. 27

2.5.1 基于DataFrame的Machine Learning API 28

2.5.2 R的分布式算法… 28

2.6 Spark 2.2 GraphX.. 29

第3章 Spark的靈魂:RDD和DataSet 30

3.1 為什么說RDD和DataSet是Spark的靈魂… 30

3.1.1 RDD的定義及五大特性剖析… 30

3.1.2 DataSet的定義及內部機制剖析… 34

3.2 RDD彈性特性七個方面解析… 36

3.3 RDD依賴關系… 43

3.3.1 窄依賴解析… 43

3.3.2 寬依賴解析… 45

3.4 解析Spark中的DAG邏輯視圖… 46

3.4.1 DAG生成的機制… 46

3.4.2 DAG邏輯視圖解析… 47

3.5 RDD內部的計算機制… 49

3.5.1 Task解析… 49

3.5.2 計算過程深度解析… 49

3.6 Spark RDD容錯原理及其四大核心要點解析… 57

3.6.1 Spark RDD容錯原理… 57

3.6.2 RDD容錯的四大核心要點… 57

3.7 Spark RDD中Runtime流程解析… 59

3.7.1 Runtime架構圖… 59

3.7.2 生命周期… 60

3.8 通過WordCount實戰解析Spark RDD內部機制… 70

3.8.1 Spark WordCount動手實踐… 70

3.8.2 解析RDD生成的內部機制… 72

3.9 基于DataSet的代碼到底是如何一步步轉化成為RDD的… 78

第4章 Spark Driver啟動內幕剖析… 81

4.1 Spark Driver Program剖析… 81

4.1.1 Spark Driver Program.. 81

4.1.2 SparkContext深度剖析… 81

4.1.3 SparkContext源碼解析… 82

4.2 DAGScheduler解析… 96

4.2.1 DAG的定義… 96

4.2.2 DAG的實例化… 97

4.2.3 DAGScheduler劃分Stage的原理… 98

4.2.4 DAGScheduler劃分Stage的具體算法… 99

4.2.5 Stage內部Task獲取佳位置的算法… 113

4.3 TaskScheduler解析… 116

4.3.1 TaskScheduler原理剖析… 116

4.3.2 TaskScheduler源碼解析… 117

4.4 SchedulerBackend解析… 132

4.4.1 SchedulerBackend原理剖析… 132

4.4.2 SchedulerBackend源碼解析… 132

4.4.3 Spark程序的注冊機制… 133

4.4.4 Spark程序對計算資源Executor的管理… 134

4.5 打通Spark系統運行內幕機制循環流程… 135

4.6 本章總結… 145

第5章 Spark集群啟動原理和源碼詳解… 146

5.1 Master啟動原理和源碼詳解… 146

5.1.1 Master啟動的原理詳解… 146

5.1.2 Master啟動的源碼詳解… 147

5.1.3 Master HA雙機切換… 157

5.1.4 Master的注冊機制和狀態管理解密… 163

5.2 Worker啟動原理和源碼詳解… 170

5.2.1 Worker啟動的原理流程… 170

5.2.2 Worker啟動的源碼詳解… 174

5.3 ExecutorBackend啟動原理和源碼詳解… 178

5.3.1 ExecutorBackend接口與Executor的關系… 178

5.3.2 ExecutorBackend的不同實現… 179

5.3.3 ExecutorBackend中的通信… 181

5.3.4 ExecutorBackend的異常處理… 183

5.4 Executor中任務的執行… 184

5.4.1 Executor中任務的加載… 184

5.4.2 Executor中的任務線程池… 185

5.4.3 任務執行失敗處理… 186

5.4.4 揭秘TaskRunner 188

5.5 Executor執行結果的處理方式… 189

5.6 本章總結… 197

第6章 Spark Application提交給集群的原理和源碼詳解… 198

6.1 Spark Application到底是如何提交給集群的… 198

6.1.1 Application提交參數配置詳解… 198

6.1.2 Application提交給集群原理詳解… 199

6.1.3 Application提交給集群源碼詳解… 201

6.2 Spark Application是如何向集群申請資源的… 211

6.2.1 Application申請資源的兩種類型詳解… 211

6.2.2 Application申請資源的源碼詳解… 213

6.3 從Application提交的角度重新審視Driver 219

6.3.1 Driver到底是什么時候產生的… 220

6.3.2 Driver和Master交互原理解析… 238

6.3.3 Driver和Master交互源碼詳解… 244

6.4 從Application提交的角度重新審視Executor 249

6.4.1 Executor到底是什么時候啟動的… 249

6.4.2 Executor如何把結果交給Application. 254

6.5 Spark 1.6 RPC內幕解密:運行機制、源碼詳解、Netty與Akka等… 254

6.6 本章總結… 267

第7章 Shuffle原理和源碼詳解… 268

7.1 概述… 268

7.2 Shuffle的框架… 269

7.2.1 Shuffle的框架演進… 269

7.2.2 Shuffle的框架內核… 270

7.2.3 Shuffle框架的源碼解析… 272

7.2.4 Shuffle數據讀寫的源碼解析… 275

7.3 Hash Based Shuffle. 281

7.3.1 概述… 281

7.3.2 Hash Based Shuffle內核… 282

7.3.3 Hash Based Shuffle數據讀寫的源碼解析… 285

7.4 Sorted Based Shuffle. 290

7.4.1 概述… 292

7.4.2 Sorted Based Shuffle內核… 293

7.4.3 Sorted Based Shuffle數據讀寫的源碼解析… 294

7.5 Tungsten Sorted Based Shuffle. 302

7.5.1 概述… 302

7.5.2 Tungsten Sorted Based Shuffle內核… 302

7.5.3 Tungsten Sorted Based Shuffle數據讀寫的源碼解析… 303

7.6 Shuffle與Storage 模塊間的交互… 309

7.6.1 Shuffle注冊的交互… 310

7.6.2 Shuffle寫數據的交互… 314

7.6.3 Shuffle讀數據的交互… 315

7.6.4 BlockManager架構原理、運行流程圖和源碼解密… 315

7.6.5 BlockManager解密進階:BlockManager初始化和注冊解密、BlockManager- Master工作解密、BlockTransferService解密、本地數據讀寫解密、遠程數據讀寫解密… 324

7.7 本章總結… 341

第8章 Job工作原理和源碼詳解… 342

8.1 Job到底在什么時候產生… 342

8.1.1 觸發Job的原理和源碼解析… 342

8.1.2 觸發Job的算子案例… 344

8.2 Stage劃分內幕… 345

8.2.1 Stage劃分原理詳解… 345

8.2.2 Stage劃分源碼詳解… 346

8.3 Task全生命周期詳解… 346

8.3.1 Task的生命過程詳解… 347

8.3.2 Task在Driver和Executor中交互的全生命周期原理和源碼詳解… 348

8.4 ShuffleMapTask和ResultTask處理結果是如何被Driver管理的… 364

8.4.1 ShuffleMapTask執行結果和Driver的交互原理及源碼詳解… 364

8.4.2 ResultTask執行結果與Driver的交互原理及源碼詳解… 370

第9章 Spark中Cache和checkpoint原理和源碼詳解… 372

9.1 Spark中Cache原理和源碼詳解… 372

9.1.1 Spark中Cache原理詳解… 372

9.1.2 Spark中Cache源碼詳解… 372

9.2 Spark中checkpoint原理和源碼詳解… 381

9.2.1 Spark中checkpoint原理詳解… 381

9.2.2 Spark中checkpoint源碼詳解… 381

下載價格:5 資源分
VIP優惠:免費
下載說明:本站所有資源均來自于網絡,僅供學習參考之用!如有侵犯您的版權,請聯系郵箱:[email protected] 本站將第一時間刪除!升級VIP可免費下載。
0

評論0

請先

沒有賬號? 忘記密碼?
尖子和八1手救援彩金