圖解Spark 大數據快速分析實戰

圖解Spark 大數據快速分析實戰

《圖解Spark 大數據快速分析實戰》是2022年人民郵電出版社出版的圖書。

基本介紹

  • 中文名:圖解Spark 大數據快速分析實戰
  • 作者:王磊
  • 出版時間:2022年
  • 出版社:人民郵電出版社
  • ISBN:9787115580115
  • 類別:計算機、網路
  • 開本:128 開
  • 裝幀:平裝-膠訂
內容簡介,圖書目錄,作者簡介,

內容簡介

本書共8章,內容主要包括Spark概述及入門實戰,Spark的作業調度和資源分配算法,Spark SQL、DataFrame、Dataset的原理和實戰,深入理解Spark數據源,流式計算的原理和實戰,億級數據處理平台Spark性能調優,Spark機器學習庫,Spark 3.0的新特性和數據湖等。
本書適合Spark開發人員和Spark運維人員閱讀。

圖書目錄

目 錄
第 1章 Spark概述及入門實戰 1
1.1 Spark簡介 3
1.1.1 為什麼要學習Spark 3
1.1.2 學好Spark的關鍵點 5
1.1.3 Spark學習難點 6
1.1.4 本書編寫思路 6
1.2 Spark原理及特點 7
1.2.1 Spark的核心優勢 7
1.2.2 Spark生態介紹 11
1.2.3 Spark模組的組成 12
1.2.4 Spark運行模式 18
1.2.5 Spark集群的角色組成 18
1.2.6 Spark核心概念 21
1.2.7 Spark作業運行流程 27
1.3 Spark入門實戰 33
1.3.1 Spark獨立環境安裝實戰 33
1.3.2 YARN環境安裝實戰 36
1.3.3 Spark批處理作業入門實戰 39
1.3.4 Spark流式作業入門實戰 44
第 2章 Spark的作業調度和資源分配算法 49
2.1 Spark的作業調度 49
2.1.1 Spark作業運行框架概述 49
2.1.2 Spark調度器原理 51
2.1.3 Spark應用程式的核心概念 52
2.1.4 Spark應用程式的調度流程 52
2.1.5 在YARN級別調度Spark作業 58
2.1.6 在任務級別調度Spark作業 58
2.1.7 本地化調度簡介 62
2.1.8 本地化調度流程:延遲調度策略 64
2.1.9 Spark任務延遲調度 65
2.1.10 Spark失敗重試與黑名單機制 67
2.1.11 推測執行 68
2.1.12 資源分配機制 70
2.2 Spark on YARN資源調度 74
2.2.1 Spark on YARN運行模式 74
2.2.2 YARN調度器 77
2.3 RDD概念 86
2.3.1 RDD簡介 86
2.3.2 RDD的特點 87
2.4 RDD分區 89
2.4.1 分區的概念 89
2.4.2 分區器 89
2.4.3 自定義分區器 91
2.5 RDD依賴關係 93
2.6 Stage 94
2.7 RDD持久化 95
2.7.1 RDD持久化的概念 95
2.7.2 RDD持久化的使用 95
2.7.3 RDD持久化級別 96
2.7.4 RDD持久化原則 97
2.8 RDD檢查點 98
2.9 RDD實戰 98
2.9.1 編寫一個簡單的RDD演示程式 98
2.9.2 利用外部存儲系統生成RDD 99
2.9.3 RDD支持Transformation操作和Action操作 101
2.9.4 RDD懶載入 101
2.9.5 Spark函式的3種實現方式 102
2.9.6 RDD操作中常用Transformation運算元的原理及使用 102
2.9.7 RDD操作中常用Action運算元的原理及使用 112
2.9.8 Spark廣播變數的概念、好處和使用 114
第3章 Spark SQL、DataFrame、Dataset原理和實戰 117
3.1 Spark SQL基礎概念 117
3.1.1 Spark SQL介紹 117
3.1.2 Spark SQL查詢語句介紹 117
3.1.3 DataFrame的概念 118
3.1.4 Dataset的概念 119
3.2 創建一個Spark SQL套用 119
3.3 Spark SQL視圖操作 120
3.4 Spark Dataset操作 121
3.5 Spark DataFrame操作 122
3.5.1 DataFrame Schema設定 122
3.5.2 DataFrame數據載入 123
3.5.3 DataFrame數據保存 124
3.6 Spark SQL操作 124
3.6.1 Spark SQL表關聯操作 124
3.6.2 Spark SQL函式操作 125
第4章 深入理解Spark數據源 132
4.1 Spark檔案讀寫原理 132
4.1.1 Spark數據分布 133
4.1.2 Spark數據讀取過程 135
4.1.3 Spark數據寫出過程 136
4.2 Spark數據格式 138
4.2.1 TEXT 138
4.2.2 CSV 139
4.2.3 JSON 140
4.2.4 Parquet 141
4.2.5 ORC 145
4.2.6 AVRO 148
4.2.7 到底應該使用哪種數據格式 150
4.3 Spark讀寫HDFS 150
4.3.1 HDFS的概念和特點 150
4.3.2 HDFS架構 151
4.3.3 HDFS數據的寫入和讀取流程 152
4.3.4 HDFS的使用 153
4.4 Spark讀寫HBase 153
4.4.1 HBase的概念 153
4.4.2 HBase架構 154
4.4.3 HBase數據模型 156
4.4.4 HBase的使用 157
4.5 Spark讀寫MongoDB 159
4.5.1 MongoDB的概念 159
4.5.2 MongoDB數據模型 160
4.5.3 MongoDB架構 161
4.5.4 MongoDB的使用 164
4.6 Spark讀寫Cassandra 167
4.6.1 Cassandra的概念 167
4.6.2 Gossip協定 167
4.6.3 Cassandra數據模型 168
4.6.4 Cassandra架構 169
4.6.5 Cassandra的使用 171
4.7 Spark讀寫MySQL 173
4.8 Spark讀寫Kafka 174
4.8.1 Kafka的概念 174
4.8.2 Kafka集群架構 175
4.8.3 Kafka數據存儲設計 176
4.8.4 Kafka訊息並發設計 178
4.8.5 Kafka的使用 179
4.9 Spark讀寫ElasticSearch 182
4.9.1 ElasticSearch的概念 182
4.9.2 ElasticSearch數據模型 183
4.9.3 ElasticSearch集群架構 184
4.9.4 ElasticSearch副本架構 185
4.9.5 ElasticSearch的使用 186
第5章 Spark流式計算的原理和實戰 189
5.1 Spark Streaming 189
5.1.1 Spark Streaming介紹 189
5.1.2 Spark Streaming入門實戰 190
5.1.3 Spark Streaming的數據源 194
5.1.4 DStream 195
5.2 Spark Structured Streaming 199
5.2.1 Spark Structured Streaming介紹 199
5.2.2 Spark Structured Streaming的特點 200
5.2.3 Spark Structured Streaming的數據模型 201
5.2.4 創建一個Spark Structured Streaming套用 202
5.2.5 時間概念、延遲數據處理策略和容錯語義 206
5.2.6 Spark Structured Streaming編程模型 208
5.2.7 在結構化數據流上執行操作 212
5.2.8 啟動Spark Structured Streaming 224
5.2.9 Spark Structured Streaming結果輸出 224
5.2.10 觸發器 226
第6章 億級數據處理平台Spark性能調優 228
6.1 記憶體調優 228
6.1.1 JVM記憶體調優 228
6.1.2 堆外記憶體設定 232
6.1.3 storageFraction設定 232
6.1.4 Spark JVM調優的實踐 233
6.2 任務調優 234
6.2.1 驅動器數量、記憶體及CPU配置 234
6.2.2 設定合理的並行度 235
6.2.3 任務等待時長調優 240
6.2.4 黑名單調優 241
6.3 數據本地性調優 242
6.3.1 數據本地化介紹 242
6.3.2 RDD的復用和數據持久化 243
6.3.3 廣播變數 244
6.3.4 Kryo序列化 245
6.3.5 檢查點 246
6.4 運算元調優 248
6.4.1 使用mapPartitions( )或mapPartitionWithIndex( )函式取代map( )函式 248
6.4.2 使用foreachPartition( )函式取代foreach( )函式 249
6.4.3 使用coalesce( )函式取代repartition( )函式 249
6.4.4 使用repartitionAndSortWithin-Partitions( )函式取代“重分區 排序”操作 250
6.4.5 使用reduceByKey( )函式取代groupByKey( )函式 250
6.4.6 連線不產生Shuffle:map-side關聯 251
6.5 Spark SQL調優 251
6.6 Spark Shuffle調優 252
6.7 Spark Streaming調優 253
6.7.1 設定合理的批處理時間(batchDuration) 253
6.7.2 增加並行度 253
6.7.3 使用Kryo序列化器序列化數據 254
6.7.4 快取經常需要使用的數據 254
6.7.5 清除不需要的數據 254
6.7.6 設定合理的CPU資源 254
6.7.7 設定合理的JVM GC 254
6.7.8 在處理數據前進行重分區 254
6.7.9 設定合理的記憶體 255
6.8 處理Spark數據傾斜問題 255
6.8.1 什麼是數據傾斜 255
6.8.2 導致數據傾斜的原因是什麼 256
6.8.3 如何判斷Spark應用程式在運行中出現了數據傾斜 256
6.8.4 數據傾斜消除方案 257
第7章 Spark機器學習庫 259
7.1 Spark機器學習概述 259
7.1.1 為什麼要使用機器學習 259
7.1.2 機器學習的套用場景 259
7.1.3 機器學習的分類 260
7.1.4 機器學習算法 261
7.1.5 機器學習流程概述 264
7.1.6 數據探索 274
7.2 Spark機器學習常用統計方法 276
7.2.1 常用統計指標概述 276
7.2.2 Spark ML基礎統計實戰 276
7.2.3 Spark ML相關性分析 277
7.2.4 Spark ML數據抽樣 279
7.3 Spark分類模型 280
7.3.1 分類模型介紹 280
7.3.2 線性回歸 283
7.3.3 邏輯回歸 286
7.3.4 樸素貝葉斯 288
7.3.5 決策樹 290
7.4 協同過濾 293
7.5 Spark聚類模型 295
7.5.1 聚類模型的概念 295
7.5.2 聚類分析算法 296
7.5.3 k-均值算法模型 296
第8章 Spark 3.0的新特性和數據湖 302
8.1 Spark 3.0新特性概述 302
8.1.1 AQE 303
8.1.2 Spark SQL的新特性 305
8.1.3 Koalas和增強的PySpark 310
8.1.4 數據湖 311
8.1.5 Hydrogen、流和可擴展性 311
8.1.6 Spark 3.0的其他新特性 311
8.2 Spark未來的趨勢——數據湖 312
8.2.1 為什麼需要數據湖 312
8.2.2 Delta Lake 314
8.2.3 Delta Lake實戰 316
術語的中英文對照表 321

作者簡介

王磊,阿里雲MVP、易點天下大數據架構師,《Offer來了:Java面試核心知識點精講(原理篇)》和《Offer來了:Java面試核心知識點精講(框架篇)》的作者,極客時間每日一課專欄作者;喜歡讀書和研究新技術,長期從事物聯網和大數據研發工作;有十餘年豐富的物聯網及大數據研發和技術架構經驗,對物聯網及大數據的原理和技術實現有深刻理解;長期從事海外項目的研發和交付工作,對異地多活數據中心的建設及高可用、高並發系統的設計有豐富的實戰經驗。

相關詞條

熱門詞條

聯絡我們