注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)其他操作系統(tǒng)Spark性能優(yōu)化實戰(zhàn)

Spark性能優(yōu)化實戰(zhàn)

Spark性能優(yōu)化實戰(zhàn)

定 價:¥99.80

作 者: 謝雪葵
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302647706 出版時間: 2023-11-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 355 字?jǐn)?shù):  

內(nèi)容簡介

  《Spark性能優(yōu)化實戰(zhàn):突破性能瓶頸,遨游數(shù)據(jù)重洋》全面、系統(tǒng)、深入地介紹Apache Spark性能優(yōu)化的相關(guān)技術(shù)和策略,涵蓋從Spark性能優(yōu)化的基礎(chǔ)知識到核心技術(shù),再到應(yīng)用實踐的方方面面。本書不但系統(tǒng)地介紹各種監(jiān)控工具的使用,而且還結(jié)合實戰(zhàn)案例,詳細(xì)介紹Spark性能優(yōu)化的各種經(jīng)驗和技巧,提升讀者的實際應(yīng)用技能。 《Spark性能優(yōu)化實戰(zhàn):突破性能瓶頸,遨游數(shù)據(jù)重洋》共8章。第1章從性能優(yōu)化的基本概念出發(fā),介紹Spark的基礎(chǔ)知識,并介紹如何進(jìn)行性能優(yōu)化;第2章介紹Spark性能優(yōu)化的幾個方面,包括程序設(shè)計優(yōu)化、資源優(yōu)化、網(wǎng)絡(luò)通信優(yōu)化和數(shù)據(jù)讀寫優(yōu)化等;第3章深入介紹Spark任務(wù)執(zhí)行過程優(yōu)化;第4章介紹Spark SQL性能優(yōu)化;第5章結(jié)合實戰(zhàn)案例全面解析Spark性能優(yōu)化的核心技術(shù)與應(yīng)用;第6章詳細(xì)介紹不同應(yīng)用場景的性能優(yōu)化策略;第7章介紹Spark集成Hadoop、Kafka和Elasticsearch使用時的性能優(yōu)化,從而提供更實用的Spark性能提升方案;第8章介紹Spark應(yīng)用程序開發(fā)與優(yōu)化,以及集群管理實踐。 《Spark性能優(yōu)化實戰(zhàn):突破性能瓶頸,遨游數(shù)據(jù)重洋》內(nèi)容豐富,講解深入淺出,適合Apache Spark開發(fā)人員、數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家閱讀,也適合需要處理大規(guī)模數(shù)據(jù)集和對Spark性能優(yōu)化感興趣的技術(shù)人員閱讀,還可作為高等院校大數(shù)據(jù)專業(yè)的教材和相關(guān)培訓(xùn)機(jī)構(gòu)的教學(xué)用書。

作者簡介

  謝雪葵: 資深研發(fā)工程師,CCF會員,阿誠網(wǎng)絡(luò)創(chuàng)始人。有多年的軟件設(shè)計和開發(fā)經(jīng)驗,專注于大數(shù)據(jù)技術(shù)與服務(wù)。近年來主持和參與多個大型銀行和互聯(lián)網(wǎng)公司的大數(shù)據(jù)項目,累積了豐富的大數(shù)據(jù)項目開發(fā)及性能優(yōu)化經(jīng)驗。為多家企業(yè)提供技術(shù)支持,幫助其降低成本和提高效率。

圖書目錄

 
第1章  性能優(yōu)化基礎(chǔ) 1
1.1  Spark簡介 1
1.2  什么是Spark性能優(yōu)化 1
1.3  Spark應(yīng)用程序性能指標(biāo) 2
1.4  自帶的Spark Web UI 5
1.4.1  Jobs模塊 6
1.4.2  Stages模塊 12
1.4.3  Storage模塊 16
1.4.4  Environment模塊 17
1.4.5  Executors模塊 18
1.4.6  SQL模塊 19
1.5  自帶的Spark歷史服務(wù)器 21
1.5.1  Spark歷史服務(wù)器簡介 21
1.5.2  配置、啟動和訪問Spark
歷史服務(wù)器 22
1.6  Spark事件日志 23
1.6.1  Spark的常見事件 23
1.6.2  事件信息 24
1.6.3  Spark啟動事件分析案例 24
1.6.4  Spark事件日志的用途 25
1.6.5  CPU密集型與內(nèi)存密集型
分析案例 26
1.7  Spark驅(qū)動程序日志 27
1.8  Spark Executor日志 28
1.8.1  Spark Executor日志簡介 28
1.8.2  日志解析 28
1.8.3  配置Executor打印日志到
Driver節(jié)點 29
1.8.4  使用Executor完成時間異常
分析案例 30
1.9  Linux系統(tǒng)監(jiān)控工具 31
1.9.1  top命令 31
1.9.2  htop命令 32
1.9.3  iostat命令 32
1.9.4  vmstat命令 34
1.9.5  sar命令 35
1.9.6  Spark進(jìn)程的CPU和內(nèi)存
監(jiān)控案例 35
1.10  JVM監(jiān)控工具 36
1.10.1  JConsole監(jiān)控工具 37
1.10.2  JVisualVM監(jiān)控工具 38
1.10.3  使用JVisualVM定位內(nèi)存
泄漏案例 41
1.11  第三方工具Prometheus 42
1.11.1  Prometheus簡介 42
1.11.2  Prometheus架構(gòu)的
工作原理 42
1.11.3  安裝Prometheus 43
1.11.4  使用Prometheus Web UI 46
1.11.5  基于PromQL磁盤的多維度
分析案例 47
1.12  第三方工具Grafana 48
1.12.1  Grafana簡介 48
1.12.2  安裝Grafana 48
1.12.3  數(shù)據(jù)源和儀表盤 49
1.12.4  在Grafana中創(chuàng)建查詢和
可視化 52
1.12.5  監(jiān)控分析Spark指標(biāo)案例 55
1.13  Spark性能測試與驗證 56
1.13.1  性能測試之基準(zhǔn)測試 56
1.13.2  性能測試之壓力測試 57
1.13.3  性能測試之資源測試 59
1.13.4  性能測試之基準(zhǔn)優(yōu)化測試 61
1.13.5  獲取測試數(shù)據(jù) 62
1.13.6  使用Spark MLlib生成電商網(wǎng)站
測試數(shù)據(jù)案例 64
1.13.7  性能測試工具SparkPerf 65
1.13.8  性能測試工具HiBench 68
1.13.9  ScalaCheck檢查屬性案例 70
1.13.10  準(zhǔn)確性驗證之單元測試 71
1.13.11  準(zhǔn)確性驗證之集成測試 73
1.13.12  準(zhǔn)確性驗證之作業(yè)驗證 75
1.14  Spark執(zhí)行計劃 77
1.14.1  Spark執(zhí)行計劃簡介 77
1.14.2  Spark執(zhí)行計劃的生成
過程 78
1.14.3  執(zhí)行計劃中的邏輯計劃 80
1.14.4  執(zhí)行計劃中的物理計劃 84
1.14.5  Spark鎢絲計劃Tungsten 89
1.14.6  Spark階段劃分和
任務(wù)劃分 90
1.14.7  Spark執(zhí)行計劃的優(yōu)化和
調(diào)試 91
1.14.8  Spark執(zhí)行計劃的可視化 92
1.14.9  Shuffle性能瓶頸識別案例 93
1.15  Spark任務(wù)性能瓶頸的定位 94
1.15.1  性能瓶頸的定義和識別性能
瓶頸的意義 95
1.15.2  數(shù)據(jù)傾斜引發(fā)的性能問題 96
1.15.3  數(shù)據(jù)本地性問題 98
1.15.4  網(wǎng)絡(luò)瓶頸問題 100
1.15.5  內(nèi)存管理問題 102
1.15.6  垃圾回收問題 104
1.15.7  Spark長時任務(wù)性能瓶頸
定位案例 105
第2章  Spark應(yīng)用程序性能優(yōu)化 107
2.1  程序設(shè)計優(yōu)化 107
2.1.1  數(shù)據(jù)模型策略優(yōu)化 107
2.1.2  緩存策略優(yōu)化 108
2.1.3  廣播變量策略優(yōu)化 109
2.1.4  累加器策略優(yōu)化 111
2.1.5  函數(shù)式編程策略優(yōu)化 113
2.1.6  全局變量策略優(yōu)化 115
2.1.7  程序設(shè)計優(yōu)化綜合案例 116
2.2  資源優(yōu)化 118
2.2.1  Spark資源管理的重要性 118
2.2.2  Spark內(nèi)存管理的
優(yōu)化技巧 119
2.2.3  Spark中的CPU優(yōu)化技巧 123
2.2.4  Spark磁盤管理的
優(yōu)化技巧 125
2.2.5  Spark Shuffle分配的
優(yōu)化技巧 125
2.2.6  Spark并行度與資源分配的
平衡 127
2.2.7  Spark分區(qū)策略優(yōu)化 129
2.2.8  Spark內(nèi)存溢出的
應(yīng)對策略 130
2.2.9  Spark Shuffle分配優(yōu)化
案例 131
2.3  網(wǎng)絡(luò)通信優(yōu)化 133
2.3.1  網(wǎng)絡(luò)通信架構(gòu)和組件 133
2.3.2  網(wǎng)絡(luò)通信協(xié)議和數(shù)據(jù)
傳輸方式 134
2.3.3  數(shù)據(jù)壓縮策略 135
2.3.4  序列化策略 137
2.3.5  網(wǎng)絡(luò)緩存策略 139
2.3.6  I/O優(yōu)化策略 140
2.3.7  帶寬限制和網(wǎng)絡(luò)擁塞控制 141
2.3.8  數(shù)據(jù)本地性優(yōu)化策略 142
2.3.9  網(wǎng)絡(luò)安全和認(rèn)證優(yōu)化 143
2.3.10  進(jìn)程本地化優(yōu)化案例 144
2.4  數(shù)據(jù)讀寫優(yōu)化 147
2.4.1  數(shù)據(jù)讀取的優(yōu)化技巧 147
2.4.2  數(shù)據(jù)寫入的優(yōu)化技巧 147
2.4.3  過濾數(shù)據(jù)的讀取優(yōu)化 148
2.4.4  分區(qū)讀取數(shù)據(jù)的優(yōu)化 149
2.4.5  批量寫入數(shù)據(jù)的優(yōu)化 150
2.4.6  并行寫入數(shù)據(jù)的優(yōu)化 152
2.4.7  列存儲數(shù)據(jù)的讀取優(yōu)化 153
2.4.8  數(shù)據(jù)預(yù)處理優(yōu)化技巧 154
2.4.9  數(shù)據(jù)存儲位置優(yōu)化技巧 154
2.4.10  內(nèi)存和磁盤數(shù)據(jù)緩存
優(yōu)化技巧 155
2.4.11  數(shù)據(jù)格式優(yōu)化技巧 156
2.4.12  轉(zhuǎn)換方式優(yōu)化技巧 157
2.4.13  索引數(shù)據(jù)讀取優(yōu)化技巧 159
2.4.14  數(shù)據(jù)讀寫錯誤的處理和
容錯技巧 160
2.4.15  Alluxio的使用 162
2.4.16  利用壓縮數(shù)據(jù)減少傳輸量
案例 166
第3章  Spark任務(wù)執(zhí)行過程優(yōu)化 169
3.1  調(diào)度優(yōu)化 169
3.1.1  資源管理器的基本原理 169
3.1.2  理解Spark資源管理器 171
3.1.3  資源分配策略 174
3.1.4  資源調(diào)度算法 176
3.1.5  集群資源池化技術(shù) 180
3.1.6  Docker容器 182
3.1.7  基于YARN的資源管理 184
3.1.8  基于Mesos的資源管理 188
3.1.9  基于Kubernetes的資源
管理 190
3.1.10  Spark資源利用率和性能
優(yōu)化案例 204
3.2  任務(wù)執(zhí)行器優(yōu)化 206
3.2.1  Spark任務(wù)執(zhí)行器組件簡介 206
3.2.2  Spark任務(wù)執(zhí)行器的線程池
配置優(yōu)化 210
3.2.3  Spark任務(wù)執(zhí)行器的JVM參數(shù)
配置優(yōu)化 211
3.2.4  Spark任務(wù)執(zhí)行器的堆內(nèi)存
配置優(yōu)化 213
3.2.5  Spark任務(wù)執(zhí)行器的直接內(nèi)存
配置優(yōu)化 215
3.2.6  Spark任務(wù)執(zhí)行器的內(nèi)存分配
方式優(yōu)化 216
3.2.7  Spark任務(wù)執(zhí)行器的GC策略
配置優(yōu)化 218
3.2.8  Spark任務(wù)執(zhí)行器的資源隔離
配置優(yōu)化 219
3.2.9  Spark任務(wù)執(zhí)行器的容錯機(jī)制
優(yōu)化 220
3.2.10  Spark任務(wù)線程池的并行度
提升和吞吐量增強(qiáng)案例 221
第4章  Spark SQL性能優(yōu)化 223
4.1  常用的查詢優(yōu)化 223
4.1.1  謂詞下推 223
4.1.2  窄依賴 224
4.1.3  聚合查詢優(yōu)化 224
4.1.4  Join查詢優(yōu)化 226
4.1.5  子查詢優(yōu)化 227
4.1.6  聯(lián)合查詢優(yōu)化 228
4.1.7  窗口函數(shù)優(yōu)化 229
4.1.8  排序查詢優(yōu)化 232
4.1.9  內(nèi)置函數(shù)優(yōu)化 232
4.1.10  Union連接優(yōu)化 233
4.1.11  表設(shè)計優(yōu)化 233
4.1.12  使用窗口函數(shù)實現(xiàn)高效的
分組統(tǒng)計案例 234
4.2  Spark 3.0的新特性 236
4.2.1  AQE的自動分區(qū)合并 236
4.2.2  AQE的自動傾斜處理 238
4.2.3  AQE的Join策略調(diào)整 239
4.2.4  DPP動態(tài)分區(qū)剪裁 240
4.2.5  Join Hints的使用技巧 241
4.2.6  使用Join Hints解決數(shù)據(jù)傾斜
案例 244
4.3  Spark SQL數(shù)據(jù)傾斜優(yōu)化 245
4.3.1  廣播變量 245
4.3.2  采樣 246
4.3.3  手動指定Shuffle分區(qū)數(shù) 248
4.3.4  隨機(jī)前綴和哈希 249
4.3.5  使用Map Join方法 251
4.3.6  預(yù)先聚合 253
4.3.7  排序 255
4.3.8  動態(tài)重分區(qū) 257
4.3.9  手動實現(xiàn)動態(tài)重分區(qū)案例 258
4.4  特定場景優(yōu)化 259
4.4.1  大表連接小表 259
4.4.2  大表連接大表 262
4.4.3  窗口函數(shù)優(yōu)化 265
4.4.4  復(fù)雜邏輯和函數(shù)調(diào)用優(yōu)化 268
4.4.5  多表關(guān)聯(lián)查詢優(yōu)化 270
4.4.6  寬表查詢優(yōu)化 272
4.4.7  使用兩階段Shuffle解決傾斜
大表關(guān)聯(lián)案例 272
第5章  Spark性能優(yōu)化
案例分析 281
5.1  基于Spark的短視頻推薦系統(tǒng)
性能優(yōu)化 281
5.1.1  短視頻推薦系統(tǒng)概述 281
5.1.2  將Spark作為短視頻推薦系統(tǒng)的
計算框架 285
5.1.3  客戶端Push業(yè)務(wù) 287
5.1.4  Model_Server大寬表 288
5.1.5  推薦請求表ETL的優(yōu)化 289
5.1.6  Model_Server大寬表的
優(yōu)化 294
5.1.7  案例總結(jié) 296
5.2  基于Spark的航空數(shù)據(jù)分析系統(tǒng)性能
優(yōu)化 297
5.2.1  系統(tǒng)概述 297
5.2.2  性能評估與瓶頸分析 299
5.2.3  數(shù)據(jù)分區(qū)與存儲優(yōu)化 300
5.2.4  任務(wù)調(diào)度與資源管理 301
5.2.5  數(shù)據(jù)預(yù)處理與轉(zhuǎn)換優(yōu)化 302
5.2.6  查詢優(yōu)化與性能優(yōu)化 304
5.2.7  并行計算與調(diào)度優(yōu)化 305
5.2.8  監(jiān)控與優(yōu)化策略 306
第6章  不同場景的Spark性能
優(yōu)化 309
6.1  批處理模式的優(yōu)化策略 309
6.1.1  數(shù)據(jù)傾斜優(yōu)化之預(yù)聚合 309
6.1.2  數(shù)據(jù)傾斜優(yōu)化之鍵值對
重分區(qū) 313
6.1.3  數(shù)據(jù)傾斜優(yōu)化之調(diào)整分區(qū)
數(shù)量 314
6.1.4  數(shù)據(jù)傾斜優(yōu)化之廣播變量 316
6.1.5  數(shù)據(jù)傾斜優(yōu)化之動態(tài)調(diào)整分區(qū)
大小 317
6.1.6  數(shù)據(jù)傾斜優(yōu)化之使用Map Join
方法 318
6.1.7  數(shù)據(jù)傾斜優(yōu)化之隨機(jī)前綴和
擴(kuò)容RDD 319
6.1.8  數(shù)據(jù)傾斜優(yōu)化之采樣傾斜
key 320
6.1.9  數(shù)據(jù)傾斜優(yōu)化之過濾特定
數(shù)據(jù) 322
6.1.10  數(shù)據(jù)傾斜優(yōu)化之組合策略 323
6.1.11  基于內(nèi)存的Shuffle操作
優(yōu)化 324
6.1.12  基于Sort的Shuffle操作
優(yōu)化 325
6.1.13  基于壓縮和序列化的Shuffle
操作優(yōu)化 326
6.1.14  基于增量式的Shuffle
操作優(yōu)化 326
6.2  流式處理場景的優(yōu)化策略 327
6.2.1  批處理間隔優(yōu)化 327
6.2.2  狀態(tài)管理優(yōu)化 328
6.2.3  窗口操作優(yōu)化 329
6.3  機(jī)器學(xué)習(xí)場景的優(yōu)化策略 330
6.3.1  模型訓(xùn)練優(yōu)化 330
6.3.2  特征工程優(yōu)化 331
第7章  Spark集成其他技術(shù)的
性能優(yōu)化 333
7.1  Spark與Hadoop整合優(yōu)化 333
7.1.1  數(shù)據(jù)讀寫優(yōu)化 333
7.1.2  數(shù)據(jù)存儲優(yōu)化 334
7.2  Spark與Kafka整合優(yōu)化 336
7.2.1  數(shù)據(jù)讀寫優(yōu)化 336
7.2.2  數(shù)據(jù)處理優(yōu)化 337
7.3  Spark與Elasticsearch的整合優(yōu)化 339
7.3.1  數(shù)據(jù)寫入和索引優(yōu)化 340
7.3.2  數(shù)據(jù)查詢和性能優(yōu)化 341
第8章  Spark性能優(yōu)化實踐 344
8.1  Spark應(yīng)用程序開發(fā)建議 344
8.1.1  代碼規(guī)范 344
8.1.2  數(shù)據(jù)分析 346
8.1.3  數(shù)據(jù)處理 348
8.2  Spark應(yīng)用程序優(yōu)化建議 349
8.2.1  數(shù)據(jù)壓縮 349
8.2.2  合理使用緩存 350
8.2.3  Shuffle操作 351
8.3  Spark集群管理的優(yōu)化建議 352
8.3.1  資源管理 352
8.3.2  任務(wù)調(diào)度 353
8.3.3  故障處理 354
結(jié)束語 356
Spark性能優(yōu)化實戰(zhàn):突破性能瓶頸,遨游數(shù)據(jù)重洋
  
目錄
  
·VIII·
  
  
·IX·
  
  
  
  
  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號