前 言
第1章 Spark簡介 1
1.1 初識Spark 1
1.2 Spark生態係統BDAS 3
1.3 Spark架構與運行邏輯 4
1.4 彈性分布式數據集 6
1.4.1 RDD簡介 6
1.4.2 RDD算子分類 8
1.5 本章小結 17
第2章 Spark開發與環境配置 18
2.1 Spark應用開發環境配置 18
2.1.1 使用Intellij開發Spark程序 18
2.1.2 使用SparkShell進行交互式數據分析 23
2.2 遠程調試Spark程序 24
2.3 Spark編譯 26
2.4 配置Spark源碼閱讀環境 29
2.5 本章小結 29
第3章 BDAS簡介 30
3.1 SQL on Spark 30
3.1.1 為什麼使用Spark SQL 31
3.1.2 Spark SQL架構分析 32
3.2 Spark Streaming 35
3.2.1 Spark Streaming簡介 35
3.2.2 Spark Streaming架構 38
3.2.3 Spark Streaming原理剖析 38
3.3 GraphX 45
3.3.1 GraphX簡介 45
3.3.2 GraphX的使用簡介 45
3.3.3 GraphX體係結構 48
3.4 MLlib 50
3.4.1 MLlib簡介 50
3.4.2 MLlib中的聚類和分類 52
3.5 本章小結 57
第4章 Lamda架構日誌分析流水綫 58
4.1 日誌分析概述 58
4.2 日誌分析指標 61
4.3 Lamda架構 62
4.4 構建日誌分析數據流水綫 64
4.4.1 用Flume進行日誌采集 64
4.4.2 用Kafka將日誌匯總 68
4.4.3 用Spark Streaming進行實時日誌分析 70
4.4.4 Spark SQL離綫日誌分析 75
4.4.5 用Flask將日誌KPI可視化 78
4.5 本章小結 81
第5章 基於雲平颱和用戶日誌的推薦係統 82
5.1 Azure雲平颱簡介 82
5.1.1 Azure網站模型 83
5.1.2 Azure數據存儲 84
5.1.3 Azure Queue消息傳遞 84
5.2 係統架構 85
5.3 構建Node.js應用 86
5.3.1 創建Azure Web應用 87
5.3.2 構建本地Node.js網站 90
5.3.3 發布應用到雲平颱 90
5.4 數據收集與預處理 91
5.4.1 通過JS收集用戶行為日誌 92
5.4.2 用戶實時行為迴傳到Azure Queue 94
5.5 Spark Streaming實時分析用戶日誌 96
5.5.1 構建Azure Queue的Spark Streaming Receiver 96
5.5.2 Spark Streaming實時處理Azure Queue日誌 97
5.5.3 Spark Streaming數據存儲於Azure Table 98
5.6 MLlib離綫訓練模型 99
5.6.1 加載訓練數據 99
5.6.2 使用rating RDD訓練ALS模型 100
5.6.3 使用ALS模型進行電影推薦 101
5.6.4 評估模型的均方差 101
5.7 本章小結 102
第6章 Twitter情感分析 103
6.1 係統架構 103
6.2 Twitter數據收集 104
6.2.1 設置 104
6.2.2 Spark Streaming接收並輸齣Tweet 109
6.3 數據預處理與Cassandra存儲 111
6.3.1 添加SBT依賴 111
6.3.2 創建Cassandra Schema 112
6.3.3 數據存儲於Cassandra 112
6.4 Spark Streaming熱點Twitter分析 113
6.5 Spark Streaming在綫情感分析 115
6.6 Spark SQL進行Twitter分析 118
6.6.1 讀取Cassandra數據 118
6.6.2 查看JSON數據模式 118
6.6.3 Spark SQL分析Twitter 119
6.7 Twitter可視化 123
6.8 本章小結 125
第7章 熱點新聞分析係統 126
7.1 新聞數據分析 126
7.2 係統架構 126
7.3 爬蟲抓取網絡信息 127
7.3.1 Scrapy簡介 127
7.3.2 創建基於Scrapy的新聞爬蟲 128
7.3.3 爬蟲分布式化 133
7.4 新聞文本數據預處理 134
7.5 新聞聚類 135
7.5.1 數據轉換為嚮量(嚮量空間模型VSM) 135
7.5.2 新聞聚類 136
7.5.3 詞嚮量同義詞查詢 138
7.5.4 實時熱點新聞分析 138
7.6 Spark Elastic Search構建全文檢索引擎 139
7.6.1 部署Elastic Search 139
7.6.2 用Elastic Search索引MongoDB數據 141
7.6.3 通過Elastic Search檢索數據 143
7.7 本章小結 145
第8章 構建分布式的協同過濾推薦係統 146
8.1 推薦係統簡介 146
8.2 協同過濾介紹 147
8.2.1 基於用戶的協同過濾算法User-based CF 148
8.2.2 基於項目的協同過濾算法Item-based CF 149
8.2.3 基於模型的協同過濾推薦Model-based CF 150
8.3 基於Spark的矩陣運算實現協同過濾算法 152
8.3.1 Spark中的矩陣類型 152
8.3.2 Spark中的矩陣運算 153
8.3.3 實現User-based協同過濾的示例 153
8.3.4 實現Item-based協同過濾的示例 154
8.3.5 基於奇異值分解實現Model-based協同過濾的示例 155
8.4 基於Spark的MLlib實現協同過濾算法 155
8.4.1 MLlib的推薦算法工具 155
8.4.2 MLlib協同過濾推薦示例 156
8.5 案例:使用MLlib協同過濾實現電影推薦 157
8.5.1 MovieLens數據集 157
8.5.2 確定ZUI佳的協同過濾模型參數 158
8.5.3 利用ZUI佳模型進行電影推薦 160
8.6 本章小結 161
第9章 基於Spark的社交網絡分析 162
9.1 社交網絡介紹 162
9.1.1 社交網絡的類型 162
9.1.2 社交網絡的相關概念 163
9.2 社交網絡中社團挖掘算法 164
9.2.1 聚類分析和K均值算法簡介 165
9.2.2 社團挖掘的衡量指標 165
9.2.3 基於譜聚類的社團挖掘算法 166
9.3 Spark中的K均值算法 168
9.3.1 Spark中與K均值有關的對象和方法 168
9.3.2 Spark下K均值算法示例 168
9.4 案例:基於Spark的Facebook社團挖掘 169
9.4.1 SNAP社交網絡數據集介紹 169
9.4.2 基於Spark的社團挖掘實現 170
9.5 社交網絡中的鏈路預測算法 172
9.5.1 分類學習簡介 172
9.5.2 分類器的評價指標 173
9.5.3 基於Logistic迴歸的鏈路預測算法 174
9.6 Spark MLlib中的Logistic迴歸 174
9.6.1 分類器相關對象 174
9.6.2 模型驗證對象 175
9.6.3 基於Spark的Logistic迴歸示例 175
9.7 案例:基於Spark的鏈路預測算法 177
9.7.1 SNAP符號社交網絡Epinions數據集 177
9.7.2 基於Spark的鏈路預測算法 177
9.8 本章小結 179
第10章 基於Spark的大規模新聞主題分析 180
10.1 主題模型簡介 180
10.2 主題模型LDA 181
10.2.1 LDA模型介紹 181
10.2.2 LDA的訓練算法 183
10.3 Spark中的LDA模型 185
10.3.1 MLlib對LDA的支持 185
10.3.2 Spark中LDA模型訓練示例 186
10.4 案例:Newsgroups新聞的主題分析 189
10.4.1 Newsgroups數據集介紹 190
10.4.2 交叉驗證估計新聞的主題個數 190
10.4.3 基於主題模型的文本聚類算法 193
10.4.4 基於主題模型的文本分類算法 195
10.5 本章小結 196
第11章 構建分布式的搜索引擎 197
11.1 搜索引擎簡介 197
11.2 搜索排序概述 198
11.3 查詢無關模型PageRank 199
11.4 基於Spark的分布式PageRank實現 200
11.4.1 PageRank的MapReduce實現 200
11.4.2 Spark的分布式圖模型GraphX 203
11.4.3 基於GraphX的PageRank實現 203
11.5 案例:GoogleWeb Graph的PageRank計算 204
11.6 查詢相關模型Ranking SVM 206
11.7 Spark中支持嚮量機的實現 208
11.7.1 Spark中的支持嚮量機模型 208
11.7.2 使用Spark測試數據演示支持嚮量機的訓練 209
11.8 案例:基於MSLR數據集的查詢排序 211
11.8.1 Microsoft Learning to Rank數據集介紹 211
11.8.2 基於Spark的Ranking SVM實現 212
11.9 本章小結 213
· · · · · · (
收起)