Spark大數據商業實戰三部曲-內核解密/商業案例/性能調優 版權信息
- ISBN:9787302489627
- 條形碼:9787302489627 ; 978-7-302-48962-7
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Spark大數據商業實戰三部曲-內核解密/商業案例/性能調優 本書特色
《Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優》基于Spark 2.2.X,以Spark商業案例實戰和Spark在生產環境下幾乎所有類型的性能調優為核心,以Spark內核解密為基石,分為上篇、中篇、下篇,對企業生產環境下的Spark商業案例與性能調優抽絲剝繭地進行剖析。上篇基于Spark源碼,從一個動手實戰案例入手,循序漸進地全面解析了Spark 2.2新特性及Spark內核源碼;中篇選取Spark開發中*有代表的經典學習案例,深入淺出地介紹,在案例中綜合應用Spark的大數據技術;下篇性能調優內容基本完全覆蓋了Spark在生產環境下的所有調優技術。
Spark大數據商業實戰三部曲-內核解密/商業案例/性能調優 內容簡介
基于*的Spark2.2.X版本,分為內核解密篇,商業案例篇,性能調優篇,共31章,學習過程中有任何疑問,可加入QQ群,有專業人員答疑解惑。
Spark大數據商業實戰三部曲-內核解密/商業案例/性能調優 目錄
目 錄
上篇 內核解密
第1章 電光石火間體驗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 第二代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
第10章 Spark中Broadcast和Accumulator原理和源碼詳解... 391
10.1 Spark中Broadcast原理和源碼詳解... 391
10.1.1 Spark中Broadcast原理詳解... 391
10.1.2 Spark中Broadcast源碼詳解... 393
10.2
Spark中Accumulator原理和源碼詳解... 396
10.2.1 Spark中Accumulator原理詳解... 396
10.2.2 Spark中Accumulator源碼詳解... 396
第11章 Spark與大數據其他經典組件整合原理與實戰... 399
11.1
Spark組件綜合應用... 399
11.2 Spark與Alluxio整合原理與實戰... 400
11.2.1 Spark與Alluxio整合原理... 400
11.2.2 Spark與Alluxio整合實戰... 401
11.3 Spark與Job Server整合原理與實戰... 403
11.3.1 Spark與Job
Server整合原理... 403
11.3.2 Spark與Job
Server整合實戰... 404
11.4 Spark與Redis整合原理與實戰... 406
11.4.1 Spark與Redis整合原理... 406
11.4.2 Spark與Redis整合實戰... 407
中篇 商業案例
第12章 Spark商業案例之大數據電影點評系統應用案例... 412
12.1 通過RDD實現分析電影的用戶行為信息... 412
12.1.1 搭建IDEA開發環境... 412
12.1.2 大數據電影點評系統中電影數據說明... 425
12.1.3 電影點評系統用戶行為分析統計實戰... 428
12.2 通過RDD實現電影流行度分析... 431
12.3 通過RDD分析各種類型的*喜愛電影TopN及性能優化技巧... 433
12.4 通過RDD分析電影點評系統仿QQ和微信等用戶群分析及廣播
背后機制解密... 436
12.5 通過RDD分析電影點評系統實現Java和Scala版本的二次排序系統... 439
12.5.1 二次排序自定義Key值類實現(Java)... 440
12.5.2 電影點評系統二次排序功能實現(Java)... 442
12.5.3 二次排序自定義Key值類實現(Scala)... 445
12.5.4 電影點評系統二次排序功能實現(Scala)... 446
12.6 通過Spark SQL中的SQL語句實現電影點評系統用戶行為分析... 447
12.7 通過Spark SQL下的兩種不同方式實現口碑*佳電影分析... 451
12.8 通過Spark SQL下的兩種不同方式實現*流行電影分析... 456
12.9 通過DataFrame分析*受男性和女性喜愛電影TopN.. 457
12.10 純粹通過DataFrame分析電影點評系統仿QQ和微信、淘寶等用戶群... 460
12.11 純粹通過DataSet對電影點評系統進行流行度和不同年齡階段興趣分析等... 462
12.11.1 通過DataSet實現某特定電影觀看者中男性和女性不同年齡的人數... 463
12.11.2 通過DataSet方式計算所有電影中平均得分*高
(口碑*好)的電影TopN.. 464
12.11.3 通過DataSet方式計算所有電影中粉絲或者觀看人數*多(*流行電影)的電影TopN 465
12.11.4 純粹通過DataSet的方式實現所有電影中*受男性、女性喜愛的
電影Top10. 466
12.11.5 純粹通過DataSet的方式實現所有電影中QQ或者微信核心目標
用戶*喜愛電影TopN分析... 467
12.11.6 純粹通過DataSet的方式實現所有電影中淘寶核心目標用戶*喜愛電影TopN分析 469
12.12 大數據電影點評系統應用案例涉及的核心知識點原理、源碼及案例代碼... 470
12.12.1 知識點:廣播變量Broadcast內幕機制... 470
12.12.2 知識點:SQL全局臨時視圖及臨時視圖... 473
12.12.3 大數據電影點評系統應用案例完整代碼... 474
12.13 本章總結... 496
展開全部
Spark大數據商業實戰三部曲-內核解密/商業案例/性能調優 作者簡介
王家林,中國有名的Spark培訓專家,ApacheSpark、Android技術中國區布道師,DT大數據夢工廠創始人和首席專家,Android軟硬整合專家。深入研究了Spark中0.5.0到2.2.1中的共30個版本的Spark源碼,尤其撞長Spark在生產環境下各種類型和場景的故陣排除和解決。目前致力于大數據Spark和人工智能TensorFlow的深度S合。
段智華,就職于中國電信股份有限公司上海分公司,系統架構師,CSDNW客專家。專注于Spark大數據技術研發及準廣,跟隨Spark核心源碼技術的發展,深入研究Spark2.1.1版本及Spark2.2.0版本的源碼優化,對Spa......