Spark大數(shù)據(jù)分析實戰(zhàn)
定 價:79 元
- 作者:張偉洋
- 出版時間:2020/8/1
- ISBN:9787302556954
- 出 版 社:清華大學出版社
- 中圖法分類:TP274
- 頁碼:376
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書作為Spark的入門書,從Spark核心編程語言Scala講起,涵蓋當前Spark主流的開發(fā)組件。以實操為主,深入講解每一個操作步驟,包括Spark RDD離線數(shù)據(jù)處理、Spark SQL快速結(jié)構(gòu)化數(shù)據(jù)處理、Spark Streaming實時數(shù)據(jù)處理,同時包括案例講解、源碼剖析、常用Shell命令和Java API詳解。即使沒有任何Spark基礎(chǔ)的讀者也可以對照書中的步驟成功搭建屬于自己的Spark集群,是一本真正的實操指南書籍。本書可作為大數(shù)據(jù)開發(fā)人員的隨身手冊,也可作為Spark新手入門的指導書籍,以及大數(shù)據(jù)從業(yè)者的參考用書。
"Spark已成為當今很好活躍、高效的大數(shù)據(jù)計算平臺,很多互聯(lián)網(wǎng)公司都使用Spark來實現(xiàn)公司的核心業(yè)務(wù),如阿里的云計算平臺、京東的推薦系統(tǒng)等,只要和海量數(shù)據(jù)相關(guān)的領(lǐng)域都有Spark的身影。 本書基于Spark 2.4.x新版本編寫,涵蓋當前整個Spark生態(tài)系統(tǒng)主流的大數(shù)據(jù)處理技術(shù),以實操案例為主,理論為輔,一步一步手把手對常用的Spark離線計算及實時計算等系統(tǒng)進行詳細論述。"
章Spark開發(fā)準備——Scala基礎(chǔ)1
1.1什么是SCALA1
1.2安裝SCALA2
1.2.1在Windows中安裝Scala2
1.2.2在CentOS7中安裝Scala3
1.3SCALA基礎(chǔ)4
1.3.1變量聲明4
1.3.2數(shù)據(jù)類型5
1.3.3表達式7
1.3.4循環(huán)8
1.3.5方法與函數(shù)10
1.4集合14
1.4.1數(shù)組14
1.4.2List16
1.4.3Map映射17
1.4.4元組19
1.4.5Set20
1.5類和對象21
1.5.1類的定義21
1.5.2單例對象22
1.5.3伴生對象22
1.5.4get和set方法23
1.5.5構(gòu)造器25
1.6抽象類和特質(zhì)28
1.6.1抽象類28
1.6.2特質(zhì)30
1.7使用ECLIPSE創(chuàng)建SCALA項目31
1.7.1安裝ScalaforEclipseIDE31
1.7.2創(chuàng)建Scala項目33
1.8使用INTELLIJIDEA創(chuàng)建SCALA項目33
1.8.1在IDEA中安裝Scala插件34
1.8.2創(chuàng)建Scala項目37
第2章初識Spark40
2.1大數(shù)據(jù)開發(fā)總體架構(gòu)40
2.2什么是SPARK42
2.3SPARK主要組件43
2.4SPARK運行時架構(gòu)45
2.4.1YARN集群架構(gòu)45
2.4.2SparkStandalone架構(gòu)49
2.4.3SparkOnYARN架構(gòu)50
2.5SPARK集群搭建與測試53
2.5.1SparkStandalone模式的集群搭建53
2.5.2SparkOnYARN模式的集群搭建55
2.5.3SparkHA的搭建56
2.6SPARK應(yīng)用程序的提交60
2.7SPARKSHELL的使用63
第3章SparkRDD彈性分布式數(shù)據(jù)集66
3.1什么是RDD66
3.2創(chuàng)建RDD67
3.2.1從對象集合創(chuàng)建RDD67
3.2.2從外部存儲創(chuàng)建RDD68
3.3RDD的算子69
3.3.1轉(zhuǎn)化算子69
3.3.2行動算子77
3.4RDD的分區(qū)78
3.4.1分區(qū)數(shù)量79
3.4.2自定義分區(qū)器88
3.5RDD的依賴93
3.5.1窄依賴94
3.5.2寬依賴94
3.5.3Stage劃分95
3.6RDD的持久化97
3.6.1存儲級別98
3.6.2查看緩存100
3.7RDD的檢查點102
3.8共享變量104
3.8.1廣播變量104
3.8.2累加器106
3.9案例分析:SPARKRDD實現(xiàn)單詞計數(shù)107
3.10案例分析:SPARKRDD實現(xiàn)分組求TOPN116
3.11案例分析:SPARKRDD實現(xiàn)二次排序120
3.12案例分析:SPARKRDD計算成績平均分124
3.13案例分析:SPARKRDD倒排索引統(tǒng)計每日新增用戶126
3.14案例分析:SPARKRDD讀寫HBASE130
3.14.1讀取HBase表數(shù)據(jù)131
3.14.2寫入HBase表數(shù)據(jù)134
3.15案例分析:SPARKRDD數(shù)據(jù)傾斜問題解決143
3.15.1數(shù)據(jù)傾斜的常用解決方法144
3.15.2使用隨機key進行雙重聚合145
3.15.3WebUI查看Spark歷史作業(yè)149
第4章Spark內(nèi)核源碼分析151
4.1SPARK集群啟動原理分析151
4.2SPARK應(yīng)用程序提交原理分析162
4.3SPARK作業(yè)工作原理分析175
4.3.1MapReduce的工作原理175
4.3.2Spark作業(yè)工作的原理177
4.4SPARK檢查點原理分析191
第5章SparkSQL結(jié)構(gòu)化數(shù)據(jù)處理引擎196
5.1什么是SPARKSQL196
5.2DATAFRAME和DATASET197
5.3SPARKSQL的基本使用198
5.4SPARKSQL數(shù)據(jù)源201
5.4.1基本操作201
5.4.2Parquet文件206
5.4.3JSON數(shù)據(jù)集209
5.4.4Hive表211
5.4.5JDBC213
5.5SPARKSQL內(nèi)置函數(shù)214
5.5.1自定義函數(shù)216
5.5.2自定義聚合函數(shù)218
5.5.3開窗函數(shù)220
5.6案例分析:使用SPARKSQL實現(xiàn)單詞計數(shù)223
5.7案例分析:SPARKSQL與HIVE整合228
5.7.1整合Hive的步驟228
5.7.2操作Hive的幾種方式231
5.8案例分析:SPARKSQL讀寫MYSQL233
5.9案例分析:SPARKSQL每日UV統(tǒng)計238
5.10案例分析:SPARKSQL熱點搜索詞統(tǒng)計241
5.11綜合案例:SPARKSQL智慧交通數(shù)據(jù)分析244
5.11.1項目介紹244
5.11.2數(shù)據(jù)準備246
5.11.3統(tǒng)計正?ǹ跀(shù)量249
5.11.4統(tǒng)計車流量排名前3的卡口號249
5.11.5統(tǒng)計車輛高速通過的卡口TOP5250
5.11.6統(tǒng)計每個卡口通過速度快的前3輛車254
5.11.7車輛軌跡分析255
第6章Kafka分布式消息系統(tǒng)256
6.1什么是KAFKA256
6.2KAFKA架構(gòu)257
6.3主題與分區(qū)259
6.4分區(qū)副本260
6.5消費者組262
6.6數(shù)據(jù)存儲機制2
6.7集群環(huán)境搭建266
6.8命令行操作268
6.8.1創(chuàng)建主題268
6.8.2查詢主題269
6.8.3創(chuàng)建生產(chǎn)者269
6.8.4創(chuàng)建消費者270
6.9JAVAAPI操作271
6.9.1創(chuàng)建Java工程271
6.9.2創(chuàng)建生產(chǎn)者271
6.9.3創(chuàng)建消費者273
6.9.4運行程序275
6.10案例分析:KAFKA生產(chǎn)者277
第7章SparkStreaming實時流處理引擎285
7.1什么是SPARKSTREAMING285
7.2SPARKSTREAMING工作原理286
7.3輸入DSTREAM和RECEIVER287
7.4個SPARKSTREAMING程序288
7.5SPARKSTREAMING數(shù)據(jù)源290
7.5.1基本數(shù)據(jù)源290
7.5.2不錯數(shù)據(jù)源292
7.5.3自定義數(shù)據(jù)源293
7.6DSTREAM操作297
7.6.1無狀態(tài)操作297
7.6.2狀態(tài)操作299
7.6.3窗口操作300
7.6.4輸出操作302
7.6.5緩存及持久化303
7.6.6檢查點304
7.7案例分析:SPARKSTREAMING按批次累加單詞數(shù)量306
7.8案例分析:SPARKSTREAMING整合KAFKA計算實時單詞數(shù)量311
7.9案例分析:SPARKSTREAMING實時用戶日志黑名單過濾318
7.10綜合案例:微博用戶行為分析322
第8章StructuredStreaming結(jié)構(gòu)化流處理引擎325
8.1什么是STRUCTUREDSTREAMING325
8.2STRUCTUREDSTREAMING單詞計數(shù)326
8.3STRUCTUREDSTREAMING編程模型328
8.4STRUCTUREDSTREAMING查詢輸出330
8.5STRUCTUREDSTREAMING窗口操作334
8.5.1事件時間334
8.5.2窗口聚合單詞計數(shù)335
8.5.3延遲數(shù)據(jù)和水印339
8.6案例分析:STRUCTUREDSTREAMING整合KAFKA實現(xiàn)單詞計數(shù)343
第9章GraphX圖計算引擎347
9.1什么是GRAPHX347
9.2個GRAPHX程序348
9.3GRAPHX數(shù)據(jù)結(jié)構(gòu)352
9.4GRAPHX圖操作352
9.4.1基本操作352
9.4.2屬性操作355
9.4.3結(jié)構(gòu)操作357
9.4.4連接操作359
9.4.5聚合操作362
9.5案例分析:使用GRAPHX計算社交網(wǎng)絡(luò)中粉絲的平均年齡363