前言
基礎篇
第1章Spark簡介2
1.1什麼是Spark2
1.1.1概述3
1.1.2Spark大數據處理框架3
1.1.3Spark的特點4
1.1.4Spark應用場景5
1.2Spark的重要擴展6
1.2.1SparkSQL和DataFrame6
1.2.2SparkStreaming7
1.2.3SparkMLlib和ML8
1.2.4GraphX8
1.2.5SparkR9
1.3本章小結10
第2章Spark部署和運行11
2.1部署準備11
2.1.1下載Spark11
2.1.2編譯Spark版本12
2.1.3集群部署概述14
2.2Spark部署15
2.2.1Local模式部署16
2.2.2Standalone模式部署16
2.2.3YARN模式部署18
2.3運行Spark應用程序19
2.3.1Local模式運行Spark應用程序19
2.3.2Standalone模式運行Spark應用程序20
2.3.3YARN模式運行Spark22
2.3.4應用程序提交和參數傳遞23
2.4本章小結26
第3章Spark程序開發27
3.1使用SparkShell編寫程序27
3.1.1啓動SparkShell28
3.1.2加載text文件28
3.1.3簡單RDD操作28
3.1.4簡單RDD操作應用29
3.1.5RDD緩存30
3.2構建Spark的開發環境30
3.2.1準備環境30
3.2.2構建Spark的Eclipse開發環境31
3.2.3構建Spark的IntelliJIDEA開發環境32
3.3獨立應用程序編程40
3.3.1創建SparkContext對象40
3.3.2編寫簡單應用程序40
3.3.3編譯並提交應用程序40
3.4本章小結43
第4章編程模型44
4.1RDD介紹44
4.1.1RDD特徵45
4.1.2RDD依賴45
4.2創建RDD47
4.2.1集閤(數組)創建RDD47
4.2.2存儲創建RDD48
4.3RDD操作49
4.3.1轉換操作50
4.3.2執行操作52
4.3.3控製操作54
4.4共享變量56
4.4.1廣播變量57
4.4.2纍加器57
4.5本章小結58
第5章作業執行解析59
5.1基本概念59
5.1.1Spark組件59
5.1.2RDD視圖60
5.1.3DAG圖61
5.2作業執行流程62
5.2.1基於Standalone模式的Spark架構62
5.2.2基於YARN模式的Spark架構64
5.2.3作業事件流和調度分析65
5.3運行時環境67
5.3.1構建應用程序運行時環境68
5.3.2應用程序轉換成DAG68
5.3.3調度執行DAG圖70
5.4應用程序運行實例71
5.5本章小結72
第6章SparkSQL與DataFrame73
6.1概述73
6.1.1SparkSQL發展74
6.1.2SparkSQL架構74
6.1.3SparkSQL特點76
6.1.4SparkSQL性能76
6.2DataFrame77
6.2.1DataFrame和RDD的區彆78
6.2.2創建DataFrame78
6.2.3DataFrame操作80
6.2.4RDD轉化為DataFrame82
6.3數據源84
6.3.1加載保存操作84
6.3.2Parquet文件85
6.3.3JSON數據集88
6.3.4Hive錶89
6.3.5通過JDBC連接數據庫91
6.3.6多數據源整閤查詢的小例子92
6.4分布式的SQLEngine93
6.4.1運行ThriftJDBC/ODBC服務93
6.4.2運行SparkSQLCLI94
6.5性能調優94
6.5.1緩存數據94
6.5.2調優參數94
6.5.3增加並行度95
6.6數據類型95
6.7本章小結96
第7章深入瞭解SparkStreaming97
7.1基礎知識97
7.1.1SparkStreaming工作原理98
7.1.2DStream編程模型99
7.2DStream操作100
7.2.1InputDStream100
7.2.2DStream轉換操作102
7.2.3DStream狀態操作104
7.2.4DStream輸齣操作106
7.2.5緩存及持久化107
7.2.6檢查點108
7.3性能調優109
7.3.1優化運行時間109
7.3.2設置閤適的批次大小111
7.3.3優化內存使用111
7.4容錯處理112
7.4.1文件輸入源112
7.4.2基於Receiver的輸入源112
7.4.3輸齣操作113
7.5一個例子113
7.6本章小結115
第8章SparkMLlib與機器學習116
8.1機器學習概述116
8.1.1機器學習分類117
8.1.2機器學習算法117
8.2SparkMLlib介紹118
8.3SparkMLlib庫119
8.3.1MLlib數據類型120
8.3.2MLlib的算法庫與實例123
8.4ML庫142
8.4.1主要概念143
8.4.2算法庫與實例145
8.5本章小結147
第9章GraphX圖計算框架與應用148
9.1概述148
9.2SparkGraphX架構149
9.3GraphX編程150
9.3.1GraphX的圖操作152
9.3.2常用圖算法161
9.4應用場景164
9.4.1圖譜體檢平颱164
9.4.2多圖閤並工具165
9.4.3能量傳播模型165
9.5本章小結166
第10章SparkR(RonSpark)167
10.1概述167
10.1.1SparkR介紹168
10.1.2SparkR的工作原理168
10.1.3R語言介紹169
10.1.4R語言與其他語言的通信170
10.2安裝SparkR170
10.2.1安裝R語言與rJava171
10.2.2SparkR的安裝171
10.3SparkR的運行與應用示例172
10.3.1運行SparkR172
10.3.2SparkR示例程序173
10.3.3R的DataFrame操作方法175
10.3.4SparkR的DataFrame183
10.4本章小結186
實戰篇
第11章大數據分析係統188
11.1背景188
11.2數據格式189
11.3應用架構189
11.4業務實現190
11.4.1流量、性能的實時分析190
11.4.2流量、性能的統計分析192
11.4.3業務關聯分析193
11.4.4離綫報錶分析195
11.5本章小結199
第12章係統資源分析平颱200
12.1業務背景200
12.1.1業務介紹201
12.1.2實現目標201
12.2應用架構201
12.2.1總體架構202
12.2.2模塊架構202
12.3代碼實現203
12.3.1Kafka集群203
12.3.2數據采集207
12.3.3離綫數據處理207
12.3.4數據錶現207
12.4結果驗證213
12.5本章小結214
第13章在Spark上訓練LR模型215
13.1邏輯迴歸簡介215
13.2數據格式216
13.3MLlib中LR模型源碼介紹217
13.3.1邏輯迴歸分類器217
13.3.2優化方法219
13.3.3算法效果評估221
13.4實現案例223
13.4.1訓練模型223
13.4.2計算AUC223
13.5本章小結224
第14章獲取二級鄰居關係圖225
14.1理解PageRank225
14.1.1初步理解PageRank225
14.1.2深入理解PageRank227
14.2PageRank算法基於Spark的實現228
14.3基於PageRank的二級鄰居獲取232
14.3.1係統設計232
14.3.2係統實現232
14.3.3代碼提交命令235
14.4本章小結236
高級篇
第15章調度管理238
15.1調度概述238
15.1.1應用程序間的調度239
15.1.2應用程序中的調度241
15.2調度器242
15.2.1調度池243
15.2.2Job調度流程243
15.2.3調度模塊245
15.2.4Job的生與死249
15.3本章小結253
第16章存儲管理254
16.1硬件環境254
16.1.1存儲係統254
16.1.2本地磁盤255
16.1.3內存255
16.1.4網絡和CPU255
16.2Storage模塊256
16.2.1通信層256
16.2.2存儲層258
16.3Shuffle數據持久化261
16.4本章小結263
第17章監控管理264
17.1Web界麵264
17.2SparkUI曆史監控266
17.2.1使用spark—server的原因266
17.2.2配置spark—server266
17.3監控工具269
17.3.1Metrics工具269
17.3.2其他工具271
17.4本章小結272
第18章性能調優273
18.1文件的優化273
18.1.1輸入采用大文件273
18.1.2lzo壓縮處理274
18.1.3Cache壓縮275
18.2序列化數據277
18.3緩存278
18.4共享變量278
18.4.1廣播變量279
18.4.2纍加器279
18.5流水綫優化280
18.6本章小結280
擴展篇
第19章Spark—jobserver實踐282
19.1Spark—jobserver是什麼282
19.2編譯、部署及體驗283
19.2.1編譯及部署283
19.2.2體驗286
19.3Spark—jobserver程序實戰288
19.3.1創建步驟288
19.3.2一些常見的問題289
19.4使用場景:用戶屬性分布計算289
19.4.1項目需求290
19.4.2計算架構290
19.4.3使用NamedRDD291
19.5本章小結291
第20章SparkTachyon實戰292
20.1Tachyon文件係統292
20.1.1文件係統概述293
20.1.2HDFS和Tachyon294
20.1.3Tachyon設計原理294
20.1.4Tachyon特性295
20.2Tachyon入門295
20.2.1Tachyon部署295
20.2.2TachyonAPI297
20.2.3在Spark上使用Tachyon298
20.3容錯機製299
20.4本章小結300
· · · · · · (
收起)