Spark大數(shù)據(jù)分析實(shí)戰(zhàn)
定 價(jià):79 元
- 作者:張偉洋
- 出版時(shí)間:2020/8/1
- ISBN:9787302556954
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP274
- 頁碼:376
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書作為Spark的入門書,從Spark核心編程語言Scala講起,涵蓋當(dāng)前Spark主流的開發(fā)組件。以實(shí)操為主,深入講解每一個(gè)操作步驟,包括Spark RDD離線數(shù)據(jù)處理、Spark SQL快速結(jié)構(gòu)化數(shù)據(jù)處理、Spark Streaming實(shí)時(shí)數(shù)據(jù)處理,同時(shí)包括案例講解、源碼剖析、常用Shell命令和Java API詳解。即使沒有任何Spark基礎(chǔ)的讀者也可以對(duì)照書中的步驟成功搭建屬于自己的Spark集群,是一本真正的實(shí)操指南書籍。本書可作為大數(shù)據(jù)開發(fā)人員的隨身手冊(cè),也可作為Spark新手入門的指導(dǎo)書籍,以及大數(shù)據(jù)從業(yè)者的參考用書。
"Spark已成為當(dāng)今很好活躍、高效的大數(shù)據(jù)計(jì)算平臺(tái),很多互聯(lián)網(wǎng)公司都使用Spark來實(shí)現(xiàn)公司的核心業(yè)務(wù),如阿里的云計(jì)算平臺(tái)、京東的推薦系統(tǒng)等,只要和海量數(shù)據(jù)相關(guān)的領(lǐng)域都有Spark的身影。 本書基于Spark 2.4.x新版本編寫,涵蓋當(dāng)前整個(gè)Spark生態(tài)系統(tǒng)主流的大數(shù)據(jù)處理技術(shù),以實(shí)操案例為主,理論為輔,一步一步手把手對(duì)常用的Spark離線計(jì)算及實(shí)時(shí)計(jì)算等系統(tǒng)進(jìn)行詳細(xì)論述。"
章Spark開發(fā)準(zhǔn)備——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表達(dá)式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類和對(duì)象21
1.5.1類的定義21
1.5.2單例對(duì)象22
1.5.3伴生對(duì)象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項(xiàng)目31
1.7.1安裝ScalaforEclipseIDE31
1.7.2創(chuàng)建Scala項(xiàng)目33
1.8使用INTELLIJIDEA創(chuàng)建SCALA項(xiàng)目33
1.8.1在IDEA中安裝Scala插件34
1.8.2創(chuàng)建Scala項(xiàng)目37
第2章初識(shí)Spark40
2.1大數(shù)據(jù)開發(fā)總體架構(gòu)40
2.2什么是SPARK42
2.3SPARK主要組件43
2.4SPARK運(yùn)行時(shí)架構(gòu)45
2.4.1YARN集群架構(gòu)45
2.4.2SparkStandalone架構(gòu)49
2.4.3SparkOnYARN架構(gòu)50
2.5SPARK集群搭建與測(cè)試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從對(duì)象集合創(chuàng)建RDD67
3.2.2從外部存儲(chǔ)創(chuàng)建RDD68
3.3RDD的算子69
3.3.1轉(zhuǎn)化算子69
3.3.2行動(dòng)算子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存儲(chǔ)級(jí)別98
3.6.2查看緩存100
3.7RDD的檢查點(diǎn)102
3.8共享變量104
3.8.1廣播變量104
3.8.2累加器106
3.9案例分析:SPARKRDD實(shí)現(xiàn)單詞計(jì)數(shù)107
3.10案例分析:SPARKRDD實(shí)現(xiàn)分組求TOPN116
3.11案例分析:SPARKRDD實(shí)現(xiàn)二次排序120
3.12案例分析:SPARKRDD計(jì)算成績(jī)平均分124
3.13案例分析:SPARKRDD倒排索引統(tǒng)計(jì)每日新增用戶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使用隨機(jī)key進(jìn)行雙重聚合145
3.15.3WebUI查看Spark歷史作業(yè)149
第4章Spark內(nèi)核源碼分析151
4.1SPARK集群?jiǎn)?dòng)原理分析151
4.2SPARK應(yīng)用程序提交原理分析162
4.3SPARK作業(yè)工作原理分析175
4.3.1MapReduce的工作原理175
4.3.2Spark作業(yè)工作的原理177
4.4SPARK檢查點(diǎn)原理分析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實(shí)現(xiàn)單詞計(jì)數(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)計(jì)238
5.10案例分析:SPARKSQL熱點(diǎn)搜索詞統(tǒng)計(jì)241
5.11綜合案例:SPARKSQL智慧交通數(shù)據(jù)分析244
5.11.1項(xiàng)目介紹244
5.11.2數(shù)據(jù)準(zhǔn)備246
5.11.3統(tǒng)計(jì)正常卡口數(shù)量249
5.11.4統(tǒng)計(jì)車流量排名前3的卡口號(hào)249
5.11.5統(tǒng)計(jì)車輛高速通過的卡口TOP5250
5.11.6統(tǒng)計(jì)每個(gè)卡口通過速度快的前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消費(fèi)者組262
6.6數(shù)據(jù)存儲(chǔ)機(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)建消費(fèi)者270
6.9JAVAAPI操作271
6.9.1創(chuàng)建Java工程271
6.9.2創(chuàng)建生產(chǎn)者271
6.9.3創(chuàng)建消費(fèi)者273
6.9.4運(yùn)行程序275
6.10案例分析:KAFKA生產(chǎn)者277
第7章SparkStreaming實(shí)時(shí)流處理引擎285
7.1什么是SPARKSTREAMING285
7.2SPARKSTREAMING工作原理286
7.3輸入DSTREAM和RECEIVER287
7.4個(gè)SPARKSTREAMING程序288
7.5SPARKSTREAMING數(shù)據(jù)源290
7.5.1基本數(shù)據(jù)源290
7.5.2不錯(cuò)數(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檢查點(diǎn)304
7.7案例分析:SPARKSTREAMING按批次累加單詞數(shù)量306
7.8案例分析:SPARKSTREAMING整合KAFKA計(jì)算實(shí)時(shí)單詞數(shù)量311
7.9案例分析:SPARKSTREAMING實(shí)時(shí)用戶日志黑名單過濾318
7.10綜合案例:微博用戶行為分析322
第8章StructuredStreaming結(jié)構(gòu)化流處理引擎325
8.1什么是STRUCTUREDSTREAMING325
8.2STRUCTUREDSTREAMING單詞計(jì)數(shù)326
8.3STRUCTUREDSTREAMING編程模型328
8.4STRUCTUREDSTREAMING查詢輸出330
8.5STRUCTUREDSTREAMING窗口操作334
8.5.1事件時(shí)間334
8.5.2窗口聚合單詞計(jì)數(shù)335
8.5.3延遲數(shù)據(jù)和水印339
8.6案例分析:STRUCTUREDSTREAMING整合KAFKA實(shí)現(xiàn)單詞計(jì)數(shù)343
第9章GraphX圖計(jì)算引擎347
9.1什么是GRAPHX347
9.2個(gè)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計(jì)算社交網(wǎng)絡(luò)中粉絲的平均年齡363