第一部分Spark概述1
第1章初識Spark 3
1.1 大數據和Spark 3
1.1.1 大數據的由來4
1.1.2 大數據的分析4
1.1.3 Hadoop 5
1.1.4 Spark簡介6
1.2 與Spark的第一次親密接觸7
1.2.1 環境準備7
1.2.2 下載安裝Spark 8
1.2.3 Spark下的WordCount 8
第二部分Spark核心概念13
第2章Spark整體框架 15
2.1 編程模型15
2.1.1 RDD 17
2.1.2 Operation 17
2.2 運行框架18
2.2.1 作業提交18
2.2.2 集群的節點構成18
2.2.3 容錯處理19
2.2.4 為什麼是Scala 19
2.3 源碼閱讀環境準備19
2.3.1 源碼下載及編譯19
2.3.2 源碼目錄結構21
2.3.3 源碼閱讀工具21
2.3.4 本章小結22
第3章SparkContext初始化 23
3.1 spark-shell 23
3.2 SparkContext的初始化綜述27
3.3 Spark Repl綜述30
3.3.1 Scala Repl執行過程31
3.3.2 Spark Repl 32
第4章Spark作業提交 33
4.1 作業提交33
4.2 作業執行38
4.2.1 依賴性分析及Stage劃分39
4.2.2 Actor Model和Akka 46
4.2.3 任務的創建和分發47
4.2.4 任務執行53
4.2.5 Checkpoint和Cache 62
4.2.6 WebUI和Metrics 62
4.3 存儲機製71
4.3.1 Shuffle結果的寫入和讀取71
4.3.2 Memory Store 80
4.3.3 存儲子模塊啓動過程分析81
4.3.4 數據寫入過程分析82
4.3.5 數據讀取過程分析84
4.3.6 TachyonStore 88
第5章部署方式分析 91
5.1 部署模型91
5.2 單機模式local 92
5.3 僞集群部署local-cluster 93
5.4 原生集群Standalone Cluster 95
5.4.1 啓動Master 96
5.4.2 啓動Worker 97
5.4.3 運行spark-shell 102
5.4.4 容錯性分析106
5.5 Spark On YARN 112
5.5.1 YARN的編程模型112
5.5.2 YARN中的作業提交112
5.5.3 Spark On YARN實現詳解113
5.5.4 SparkPi on YARN 122
第三部分Spark Lib 129
第6章Spark Streaming 131
6.1 Spark Streaming整體架構131
6.1.1 DStream 132
6.1.2 編程接口133
6.1.3 Streaming WordCount 134
6.2 Spark Streaming執行過程135
6.2.1 StreamingContext初始化過程136
6.2.2 數據接收141
6.2.3 數據處理146
6.2.4 BlockRDD 155
6.3 窗口操作158
6.4 容錯性分析159
6.5 Spark Streaming vs. Storm 165
6.5.1 Storm簡介165
6.5.2 Storm和Spark Streaming對比168
6.6 應用舉例168
6.6.1 搭建Kafka Cluster 168
6.6.2 KafkaWordCount 169
第7章SQL 173
7.1 SQL語句的通用執行過程分析175
7.2 SQL On Spark的實現分析178
7.2.1 SqlParser 178
7.2.2 Analyzer 184
7.2.3 Optimizer 191
7.2.4 SparkPlan 192
7.3 Parquet 文件和JSON數據集196
7.4 Hive簡介197
7.4.1 Hive 架構197
7.4.2 HiveQL On MapReduce執行過程分析199
7.5 HiveQL On Spark詳解200
7.5.1 Hive On Spark環境搭建206
7.5.2 編譯支持Hadoop 2.x的Spark 211
7.5.3 運行Hive On Spark測試用例213
第8章GraphX 215
8.1 GraphX簡介215
8.1.1 主要特點216
8.1.2 版本演化216
8.1.3 應用場景217
8.2 分布式圖計算處理技術介紹218
8.2.1 屬性圖218
8.2.2 圖數據的存儲與分割219
8.3 Pregel計算模型220
8.3.1 BSP 220
8.3.2 像頂點一樣思考220
8.4 GraphX圖計算框架實現分析223
8.4.1 基本概念223
8.4.2 圖的加載與構建226
8.4.3 圖數據存儲與分割227
8.4.4 操作接口228
8.4.5 Pregel在GraphX中的源碼實現230
8.5 PageRank 235
8.5.1 什麼是PageRank 235
8.5.2 PageRank核心思想235
第9章MLLib 239
9.1 綫性迴歸239
9.1.1 數據和估計240
9.1.2 綫性迴歸參數求解方法240
9.1.3 正則化245
9.2 綫性迴歸的代碼實現246
9.2.1 簡單示例246
9.2.2 入口函數train 247
9.2.3 最優化算法optimizer 249
9.2.4 權重更新update 256
9.2.5 結果預測predict 257
9.3 分類算法257
9.3.1 邏輯迴歸258
9.3.2 支持嚮量機260
9.4 擬牛頓法261
9.4.1 數學原理261
9.4.2 代碼實現265
9.5 MLLib與其他應用模塊間的整閤268
第四部分附錄271
附錄A Spark源碼調試 273
附錄B 源碼閱讀技巧 283
· · · · · · (
收起)