第1章 Spark編程模型 1
1.1 Spark:一體化、多元化的高速
大數據通用計算平颱和庫 1
1.1.1 為什麼需要使用Spark 5
1.1.2 Spark技術生態係統簡介 9
1.2 Spark大數據處理框架 20
1.2.1 Spark速度為何如此之快 20
1.2.2 RDD:分布式函數式編程 24
1.3 Spark子框架解析 28
1.3.1 圖計算框架Spark GraphX 28
1.3.2 實時流處理框架(Spark Streaming) 41
1.3.3 交互式SQL處理框架Spark SQL 46
1.3.4 機器學習框架(Spark MLlib) 49
第2章 構建Spark分布式集群 55
2.1 搭建Hadoop單機版本和僞分布式開發環境 55
2.1.1 開發Hadoop需要的基本軟件 56
2.1.2 安裝每個軟件 58
2.1.3 配置Hadoop單機模式並運行Wordcount示例 76
2.1.3 配置Hadoop僞分布模式並運行Wordcount示例 84
2. 2 搭建 Hadoop分布式集群的 92
2.2.1 在VMWare 中準備第二、第三颱運行Ubuntu係統的機器 92
2.2.2 按照配置僞分布式模式的方式配置新創建運行Ubuntu係統的機器 93
2.2.3 配置Hadoop分布式集群環境 94
2.2.4 測試Hadoop分布式集群環境 105
2.3 Spark集群的動手搭建 108
2.3.1 Spark集群需要的軟件 108
2.3.2 安裝每個軟件 110
2.3.3 啓動並查看集群的狀況 116
2.4 構建Hadoop單機版本和僞分布式環境 120
2.4.1 通過Spark的shell測試Spark的工作 121
2.4.2 使用Spark的cache機製觀察一下效率的提升 125
第3章 Spark開發環境及其測試 129
3.1 搭建和設置IDEA開發環境 129
3.1.1 構建Spark的IDE開發環境 129
3.1.2 配置Spark的IDE開發環境 132
3.2 測試IDEA環境 146
3.3 實戰:在IDEA中開發代碼,並運行在Spark集群中 148
第4章 Spark RDD與編程API實戰 159
4.1 深度解析Spark RDD 159
4.2 Transformation Operations動手實戰 165
4.3 Action Operations動手實戰 175
4.4 Spark API綜閤實戰 179
第5章 Spark運行模式深入解析 191
5.1 Spark運行模式概述 192
5.1.1 Spark的運行模式列錶 196
5.1.2 Spark的基本工作流程 197
5.2 Standalone模式 201
5.2.1 部署及程序運行 202
5.2.2 內部實現原理 206
5.3 Yarn-Cluster模式 234
5.3.1 部署及程序運行 235
5.3.2 內部實現原理 237
5.4 Yarn-Client模式 243
5.4.1 部署及運行程序 243
5.4.2 內部實現原理 244
第6章 Spark內核解析 247
6.1 Spark內核初探 247
6.1.1 Spark內核核心術語解析 247
6.1.2 Spark集群概覽 250
6.1.3 Spark核心組件 251
6.1.4 Spark任務調度係統初見 252
6.2 Spark內核核心源碼解讀 256
6.2.1 SparkContext核心源碼解析初體驗 256
6.2.2 TaskSceduler啓動源碼解析初體驗 260
6.2.3 DAGScheduler源碼解讀初體驗 261
6.2.4 Spark的Web監控頁麵 262
6.3 以RDD的count操作為例觸發Job全生命周期源碼研究 263
6.4 Akka驅動下的Driver、Master、Worker 276
6.4.1 Driver中的AppClient源碼解析 276
6.4.2 AppClient注冊Master 279
6.4.3 Worker中Executor啓動過程源代碼解析 282
第7章 GraphX大規模圖計算與圖挖掘實戰 287
7.1 Spark GraphX概覽 288
7.2 Spark GraphX設計實現的核心原理 291
7.3 Table operator和Graph Operator 295
7.4 Vertices、edges、triplets 296
7.5 以最原始的方式構建graph 299
7.6 動手編寫第一個Graph代碼實例並進行Vertices、edges、triplets操作 299
7.7 在Spark集群上使用文件中的數據加載成為graph並進行操作 310
7.8 在Spark集群上掌握比較重要的圖操作 320
7.9 Spark GraphX圖算法 342
7.10 淘寶對Spark GraphX的大規模使用 347
第8章 Spark SQL原理與實戰 349
8.1 為什麼使用Spark SQL 349
8.1.1 Spark SQL的發展曆程 349
8.1.2 Spark SQL的性能 351
8.2 Spark SQL運行架構 355
8.2.1 Tree和Rule 357
8.2.2 sqlContext的運行過程 360
8.2.3 hiveContext的運行過程 362
8.2.4 catalyst優化器 365
8.3 解析Spark SQL組件 367
8.3.1 LogicalPlan 367
8.3.2 SqlParser 370
8.3.3 Analyzer 378
8.3.4 Optimizer 381
8.4 深入瞭解Spark SQL運行的計劃 383
8.4.1 hive/console的安裝過程和原理 383
8.4.2 常用操作 386
8.4.3 不同數據源的運行計劃 388
8.4.4 不同查詢的運行計劃 391
8.4.5 查詢的優化 393
8.5 搭建測試環境 396
8.5.1 搭建虛擬集群(Hadoop1、Hadoop2、Hadoop3) 397
8.5.2 搭建客戶端 398
8.5.3 文件數據的準備工作 399
8.5.4 Hive數據的準備工作 399
8.6 Spark SQL之基礎應用 400
8.6.1 sqlContext的基礎應用 402
8.6.2 hiveContext的基礎應用 405
8.6.3 混閤使用 408
8.6.4 緩存的使用 409
8.6.5 DSL的使用 410
8.7 ThriftServer和CLI 411
8.7.1 令人驚訝的CLI 411
8.7.2 ThriftServer 414
8.8 Spark SQL之綜閤應用 418
8.8.1 店鋪分類 419
8.8.2 PageRank 421
8.9 Spark SQL之調優 424
8.9.1 並行性 424
8.9.2 高效的數據格式 425
8.9.3 內存的使用 427
8.9.4 閤適的Task 428
8.9.5 其他的一些建議 428
第9章 Machine Learning on Spark 431
9.1 Spark MLlib機器學習 431
9.1.1 機器學習快速入門 432
9.1.2 Spark MLlib介紹 442
9.1.3 Spark MLlib架構解析 447
9.1.4 Spark Mllib核心解析 458
9.2 MLlib經典算法解析和案例實戰 462
9.2.1 Linear Regression解析和實戰 462
9.2.2 K-Means解析和實戰 484
9.2.3 協同過濾算法分析和案例實戰 502
9.3 MLLib其他常用算法解析和代碼實戰 552
9.3.1 Basic Statics解析和實戰 553
9.3.2 MLlib樸素貝葉斯解析和實戰 560
9.3.3 MLlib決策樹解析和實戰 562
第10章 Tachyon文件係統 565
10.1 Tachyon文件係統概述 565
10.1.1 Tachyon文件係統簡介 565
10.1.2 HDFS與Tachyon 566
10.1.3 Tachyon設計原理 568
10.2 Tachyon入門 568
10.2.1 Tachyon部署 568
10.2.2 Tachyon API的使用 570
10.2.3 在MapReduce、Spark上使用Tachyon 572
10.3 Tachyon深度解析 573
10.3.1 Tachyon整體設計概述 573
10.3.2 Tachyon Master啓動流程分析 574
10.3.3 Tachyon Worker啓動流程分析 577
10.3.4 客戶端讀寫文件源碼分析 577
10.4 Tachyon配置參數一覽 579
10.5 小結 580
第11章 Spark Streaming原理與實戰 581
11.1 Spark Streaming原理 581
11.1.1 原理和運行場景 581
11.1.2 編程模型DStream 584
11.1.3 持久化、容錯和優化 588
11.2 Spark Streaming實戰 589
11.2.1 源碼解析 589
11.2.2 Spark Streaming實戰案例 600
第12章 Spark多語言編程 605
12.1 Spark多語言編程的特點 605
12.2 Spark編程模型 609
12.3 深入Spark多語言編程 611
12.4 Spark多語言編程綜閤實例 622
第13章 R語言的分布式編程之SparkR 627
13.1 R語言快速入門 627
13.1.1 R語言是什麼 627
13.1.2 R語言的特點 629
13.1.3 R語言的安裝 630
13.1.4 R的核心概念 630
13.1.5 R動手實戰 631
13.2 使用SparkR 661
13.2.1 SparkR的安裝 661
13.2.2 使用SparkR編寫WordCount 662
13.2.3 使用SparkR的更多代碼示例 662
第14章 Spark性能調優和最佳實踐 665
14.1 Spark性能調優 665
14.1.1 Spark性能優化的12大問題及其解決方法 665
14.1.2 Spark內存優化 669
14.1.3 RDD分區 672
14.1.4 Spark性能優化實例 674
14.2 Spark性能調優細節 675
14.2.1 broadcast和accumulator 675
14.2.2 reduce 和 reduceByKey 676
14.2.3 深入reduceByKey 677
第15章 Spark源碼解析 679
15.1 BlockManager源碼解析 679
15.2 Cache源碼解析 707
15.3 Checkpoint源碼解析 725
附錄A 動手實戰Scala三部麯 733
第一部動手體驗Scala 735
第二部 動手實戰Scala麵嚮對象編程 746
第三部動手實戰Scala函數式編程 761
· · · · · · (
收起)