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

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

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

定 價:¥99.80

作 者: 謝雪葵
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

 
第1章  性能優(yōu)化基礎 1
1.1  Spark簡介 1
1.2  什么是Spark性能優(yōu)化 1
1.3  Spark應用程序性能指標 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歷史服務器 21
1.5.1  Spark歷史服務器簡介 21
1.5.2  配置、啟動和訪問Spark
歷史服務器 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驅動程序日志 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進程的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架構的
工作原理 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指標案例 55
1.13  Spark性能測試與驗證 56
1.13.1  性能測試之基準測試 56
1.13.2  性能測試之壓力測試 57
1.13.3  性能測試之資源測試 59
1.13.4  性能測試之基準優(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  準確性驗證之單元測試 71
1.13.11  準確性驗證之集成測試 73
1.13.12  準確性驗證之作業(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階段劃分和
任務劃分 90
1.14.7  Spark執(zhí)行計劃的優(yōu)化和
調試 91
1.14.8  Spark執(zhí)行計劃的可視化 92
1.14.9  Shuffle性能瓶頸識別案例 93
1.15  Spark任務性能瓶頸的定位 94
1.15.1  性能瓶頸的定義和識別性能
瓶頸的意義 95
1.15.2  數(shù)據(jù)傾斜引發(fā)的性能問題 96
1.15.3  數(shù)據(jù)本地性問題 98
1.15.4  網(wǎng)絡瓶頸問題 100
1.15.5  內(nèi)存管理問題 102
1.15.6  垃圾回收問題 104
1.15.7  Spark長時任務性能瓶頸
定位案例 105
第2章  Spark應用程序性能優(yōu)化 107
2.1  程序設計優(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  程序設計優(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)存溢出的
應對策略 130
2.2.9  Spark Shuffle分配優(yōu)化
案例 131
2.3  網(wǎng)絡通信優(yōu)化 133
2.3.1  網(wǎng)絡通信架構和組件 133
2.3.2  網(wǎng)絡通信協(xié)議和數(shù)據(jù)
傳輸方式 134
2.3.3  數(shù)據(jù)壓縮策略 135
2.3.4  序列化策略 137
2.3.5  網(wǎng)絡緩存策略 139
2.3.6  I/O優(yōu)化策略 140
2.3.7  帶寬限制和網(wǎng)絡擁塞控制 141
2.3.8  數(shù)據(jù)本地性優(yōu)化策略 142
2.3.9  網(wǎng)絡安全和認證優(yōu)化 143
2.3.10  進程本地化優(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ō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  轉換方式優(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任務執(zhí)行過程優(yōu)化 169
3.1  調度優(yōu)化 169
3.1.1  資源管理器的基本原理 169
3.1.2  理解Spark資源管理器 171
3.1.3  資源分配策略 174
3.1.4  資源調度算法 176
3.1.5  集群資源池化技術 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  任務執(zhí)行器優(yōu)化 206
3.2.1  Spark任務執(zhí)行器組件簡介 206
3.2.2  Spark任務執(zhí)行器的線程池
配置優(yōu)化 210
3.2.3  Spark任務執(zhí)行器的JVM參數(shù)
配置優(yōu)化 211
3.2.4  Spark任務執(zhí)行器的堆內(nèi)存
配置優(yōu)化 213
3.2.5  Spark任務執(zhí)行器的直接內(nèi)存
配置優(yōu)化 215
3.2.6  Spark任務執(zhí)行器的內(nèi)存分配
方式優(yōu)化 216
3.2.7  Spark任務執(zhí)行器的GC策略
配置優(yōu)化 218
3.2.8  Spark任務執(zhí)行器的資源隔離
配置優(yōu)化 219
3.2.9  Spark任務執(zhí)行器的容錯機制
優(yōu)化 220
3.2.10  Spark任務線程池的并行度
提升和吞吐量增強案例 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  表設計優(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策略調整 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  隨機前綴和哈希 249
4.3.5  使用Map Join方法 251
4.3.6  預先聚合 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  復雜邏輯和函數(shù)調用優(yōu)化 268
4.4.5  多表關聯(lián)查詢優(yōu)化 270
4.4.6  寬表查詢優(yōu)化 272
4.4.7  使用兩階段Shuffle解決傾斜
大表關聯(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è)務 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  案例總結 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  任務調度與資源管理 301
5.2.5  數(shù)據(jù)預處理與轉換優(yōu)化 302
5.2.6  查詢優(yōu)化與性能優(yōu)化 304
5.2.7  并行計算與調度優(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)化之預聚合 309
6.1.2  數(shù)據(jù)傾斜優(yōu)化之鍵值對
重分區(qū) 313
6.1.3  數(shù)據(jù)傾斜優(yōu)化之調整分區(qū)
數(shù)量 314
6.1.4  數(shù)據(jù)傾斜優(yōu)化之廣播變量 316
6.1.5  數(shù)據(jù)傾斜優(yōu)化之動態(tài)調整分區(qū)
大小 317
6.1.6  數(shù)據(jù)傾斜優(yōu)化之使用Map Join
方法 318
6.1.7  數(shù)據(jù)傾斜優(yōu)化之隨機前綴和
擴容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  機器學習場景的優(yōu)化策略 330
6.3.1  模型訓練優(yōu)化 330
6.3.2  特征工程優(yōu)化 331
第7章  Spark集成其他技術的
性能優(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應用程序開發(fā)建議 344
8.1.1  代碼規(guī)范 344
8.1.2  數(shù)據(jù)分析 346
8.1.3  數(shù)據(jù)處理 348
8.2  Spark應用程序優(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  任務調度 353
8.3.3  故障處理 354
結束語 356
Spark性能優(yōu)化實戰(zhàn):突破性能瓶頸,遨游數(shù)據(jù)重洋
  
目錄
  
·VIII·
  
  
·IX·
  
  
  
  
  

本目錄推薦

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