Spark 3.x大數據分析實戰(視頻教學版)

張偉洋

  • Spark 3.x大數據分析實戰(視頻教學版)-preview-1
  • Spark 3.x大數據分析實戰(視頻教學版)-preview-2
  • Spark 3.x大數據分析實戰(視頻教學版)-preview-3
Spark 3.x大數據分析實戰(視頻教學版)-preview-1

買這商品的人也買了...

商品描述

本書基於Spark 3.2.x版本,從Spark核心編程語言Scala講起,涵蓋了當前整個Spark生態系統主流的大數據開發技術。全書共9章,第1章講解了Scala語言的基礎知識,包括IDEA工具的使用等;第2章講解了Spark的主要組件、集群架構原理、集群環境搭建以及Spark應用程序的提交和運行;第3~9章講解了離線計算框架Spark RDD、Spark SQL和實時計算框架Kafka、Spark Streaming、Structured Streaming以及圖計算框架GraphX等的基礎知識、架構原理,同時包括常用Shell命令、API操作、內核源碼剖析,並通過多個實際案例講解各個框架的具體應用以及與Hadoop生態系統框架Hive、HBase、Kafka的整合操作。 本書通俗易懂,案例豐富,註重實操,適合Spark新手和大數據開發人員閱讀,也可作為培訓機構和高校大數據及相關專業的教學用書。

目錄大綱

目    錄

第1章  Spark開發準備——Scala基礎 1

1.1  什麽是Scala 1

1.2  安裝Scala 1

1.2.1  在Windows中安裝Scala 2

1.2.2  在CentOS 7中安裝Scala 3

1.3  Scala基礎 3

1.3.1  變量聲明 4

1.3.2  數據類型 5

1.3.3  表達式 6

1.3.4  循環 7

1.3.5  方法與函數 9

1.4  集合 12

1.4.1  數組 12

1.4.2  List 14

1.4.3  Map映射 15

1.4.4  元組 17

1.4.5  Set 18

1.5  類和對象 19

1.5.1  類的定義 19

1.5.2  單例對象 20

1.5.3  伴生對象 20

1.5.4  get和set方法 20

1.5.5  構造器 23

1.6  抽象類和特質 25

1.6.1  抽象類 25

1.6.2  特質 26

1.7  使用Eclipse創建Scala項目 28

1.7.1  安裝Scala for Eclipse IDE 28

1.7.2  創建Scala項目 29

1.8  使用IntelliJ IDEA創建Scala項目 29

1.8.1  在IDEA中安裝Scala插件 30

1.8.2  創建Scala項目 31

1.9  動手練習 32

第2章  初識Spark 33

2.1  大數據開發的總體架構 33

2.2  什麽是Spark 34

2.3  Spark的主要組件 35

2.4  Spark運行架構 37

2.4.1  YARN集群架構 37

2.4.2  Spark Standalone架構 40

2.4.3  Spark On YARN架構 42

2.5  Spark集群搭建與測試 44

2.5.1  Spark Standalone模式的集群搭建 44

2.5.2  Spark On YARN模式的集群搭建 46

2.5.3  Spark HA的搭建 47

2.6  Spark應用程序的提交 51

2.7  Spark Shell的使用 53

2.8  動手練習 55

第3章  Spark RDD彈性分佈式數據集 56

3.1  什麽是RDD 56

3.2  創建RDD 57

3.2.1  從對象集合創建RDD 57

3.2.2  從外部存儲創建RDD 57

3.3  RDD的算子 58

3.3.1  轉化算子 58

3.3.2  行動算子 65

3.4  RDD的分區 66

3.4.1  分區數量 66

3.4.2  自定義分區器 74

3.5  RDD的依賴 79

3.5.1  窄依賴 79

3.5.2  寬依賴 79

3.5.3  Stage劃分 80

3.6  RDD的持久化 81

3.6.1  存儲級別 82

3.6.2  查看緩存 84

3.7  RDD的檢查點 86

3.8  共享變量 87

3.8.1  廣播變量 87

3.8.2  累加器 89

3.9  案例分析:Spark RDD實現單詞計數 90

3.9.1  新建Maven管理的Spark項目 90

3.9.2  編寫WordCount程序 92

3.9.3  提交程序到集群 94

3.10  案例分析:Spark RDD實現分組求TopN 96

3.11  案例分析:Spark RDD實現二次排序 100

3.12  案例分析:Spark RDD計算成績平均分 103

3.13  案例分析:Spark RDD倒排索引統計 每日新增用戶 105

3.14  案例分析:Spark RDD讀寫HBase 109

3.14.1  讀取HBase表數據 109

3.14.2  寫入HBase表數據 111

3.15  案例分析:Spark RDD數據傾斜問題的解決 119

3.15.1  數據傾斜的常用解決方法 120

3.15.2  使用隨機key進行雙重聚合 121

3.15.3  WebUI查看Spark歷史作業 124

3.16  動手練習 125

第4章  Spark內核源碼分析 127

4.1  Spark集群啟動原理分析 127

4.2  Spark應用程序提交原理分析 136

4.3  Spark作業工作原理分析 146

4.3.1  MapReduce的工作原理 147

4.3.2  Spark作業的工作原理 149

4.4  Spark檢查點原理分析 160

第5章  Spark SQL結構化數據處理引擎 164

5.1  什麽是Spark SQL 164

5.2  DataFrame和Dataset 165

5.3  Spark SQL的基本使用 166

5.4  Spark SQL數據源 168

5.4.1  基本操作 168

5.4.2  Parquet文件 172

5.4.3  JSON數據集 175

5.4.4  Hive表 176

5.4.5  JDBC 178

5.5  Spark SQL內置函數 179

5.5.1  自定義函數 181

5.5.2  自定義聚合函數 182

5.5.3  開窗函數 184

5.6  案例分析:使用Spark SQL實現單詞計數 186

5.7  案例分析:Spark SQL與Hive的整合 191

5.7.1  整合Hive的步驟 191

5.7.2  操作Hive的幾種方式 193

5.8  案例分析:Spark SQL讀寫MySQL 195

5.9  案例分析:Spark SQL每日UV統計 199

5.10  案例分析:Spark SQL熱點搜索詞統計 201

5.11  綜合案例:Spark SQL智慧交通數據分析 204

5.11.1  項目介紹 204

5.11.2  數據準備 205

5.11.3  統計正常卡口數量 208

5.11.4  統計車流量排名前3的卡口號 208

5.11.5  統計車輛高速通過的卡口Top5 209

5.11.6  統計每個卡口通過速度最快的前3輛車 212

5.11.7  車輛軌跡分析 213

5.12  動手練習 214

第6章  Kafka分佈式消息系統 215

6.1  什麽是Kafka 215

6.2  Kafka架構 216

6.3  主題與分區 217

6.4  分區副本 218

6.5  消費者組 220

6.6  數據存儲機制 221

6.7  集群環境搭建 223

6.8  命令行操作 225

6.8.1  創建主題 225

6.8.2  查詢主題 225

6.8.3  創建生產者 226

6.8.4  創建消費者 227

6.9  Java API操作 227

6.9.1  創建Java工程 227

6.9.2  創建生產者 228

6.9.3  創建消費者 230

6.9.4  運行程序 231

6.10  案例分析:Kafka生產者攔截器 233

6.11  動手練習 239

第7章  Spark Streaming實時流處理引擎 240

7.1  什麽是Spark Streaming 240

7.2  Spark Streaming工作原理 241

7.3  輸入DStream和Receiver 242

7.4  第一個Spark Streaming程序 243

7.5  Spark Streaming數據源 244

7.5.1  基本數據源 244

7.5.2  高級數據源 246

7.5.3  自定義數據源 247

7.6  DStream操作 250

7.6.1  無狀態操作 251

7.6.2  狀態操作 252

7.6.3  窗口操作 253

7.6.4  輸出操作 255

7.6.5  緩存及持久化 256

7.6.6  檢查點 257

7.7  案例分析:Spark Streaming按批次累加單詞數量 259

7.8  案例分析:Spark Streaming整合Kafka計算實時單詞數量 262

7.9  案例分析:Spark Streaming實時用戶日誌黑名單過濾 268

7.10  綜合案例:微博用戶行為分析 271

7.11  動手練習 273

第8章  Structured Streaming結構化流處理引擎 274

8.1  什麽是Structured Streaming 274

8.2  Structured Streaming單詞計數 275

8.3  Structured Streaming編程模型 277

8.4  Structured Streaming查詢輸出 279

8.5  Structured Streaming窗口操作 282

8.5.1  事件時間 282

8.5.2  窗口聚合單詞計數 283

8.5.3  延遲數據和水印 286

8.6  案例分析:Structured Streaming整合Kafka實現單詞計數 290

8.7  動手練習 293

第9章  GraphX圖計算引擎 294

9.1  什麽是GraphX 294

9.2  第一個GraphX程序 295

9.3  GraphX數據結構 298

9.4  GraphX圖操作 298

9.4.1  基本操作 298

9.4.2  屬性操作 301

9.4.3  結構操作 302

9.4.4  連接操作 304

9.4.5  聚合操作 307

9.5  案例分析:使用GraphX計算社交網絡中粉絲的平均年齡 308

9.6  動手練習 310