第1章 大數據技術概述 1
1.1 大數據的概念與關鍵技術 2
1.1.1 大數據的概念 2
1.1.2 大數據關鍵技術 2
1.2 代錶性大數據技術 4
1.2.1 Hadoop 4
1.2.2 Spark 8
1.2.3 Flink 10
1.2.4 Beam 11
1.3 編程語言的選擇 12
1.4 在綫資源 13
1.5 本章小結 14
1.6 習題 14
實驗1 Linux係統的安裝和常用命令 15
一、實驗目的 15
二、實驗平颱 15
三、實驗內容和要求 15
四、實驗報告 16
第2章 Scala語言基礎 17
2.1 Scala語言概述 18
2.1.1 計算機的緣起 18
2.1.2 編程範式 19
2.1.3 Scala簡介 20
2.1.4 Scala的安裝 21
2.1.5 HelloWorld 21
2.2 Scala基礎知識 23
2.2.1 基本數據類型和變量 23
2.2.2 輸入/輸齣 26
2.2.3 控製結構 28
2.2.4 數據結構 31
2.3 麵嚮對象編程基礎 37
2.3.1 類 37
2.3.2 對象 42
2.3.3 繼承 47
2.3.4 參數化類型 50
2.3.5 特質 52
2.3.6 模式匹配 55
2.3.7 包 58
2.4 函數式編程基礎 59
2.4.1 函數的定義與使用 60
2.4.2 高階函數 61
2.4.3 閉包 62
2.4.4 偏應用函數和Curry化 62
2.4.5 針對容器的操作 64
2.4.6 函數式編程實例 69
2.5 本章小結 70
2.6 習題 70
實驗2 Scala編程初級實踐 71
一、實驗目的 71
二、實驗平颱 71
三、實驗內容和要求 72
四、實驗報告 75
第3章 Spark的設計與運行原理 76
3.1 概述 77
3.2 Spark生態係統 78
3.3 Spark運行架構 79
3.3.1 基本概念 79
3.3.2 架構設計 80
3.3.3 Spark運行基本流程 81
3.3.4 RDD的設計與運行原理 82
3.4 Spark的部署方式 91
3.5 本章小結 92
3.6 習題 93
第4章 Spark環境搭建和使用方法 94
4.1 安裝Spark 95
4.1.1 基礎環境 95
4.1.2 下載安裝文件 95
4.1.3 配置相關文件 96
4.1.4 Spark和Hadoop的交互 97
4.2 在spark-shell中運行代碼 97
4.2.1 spark-shell命令 98
4.2.2 啓動spark-shell 99
4.3 開發Spark獨立應用程序 99
4.3.1 安裝編譯打包工具 100
4.3.2 編寫Spark應用程序代碼 101
4.3.3 編譯打包 101
4.3.4 通過spark-submit運行程序 104
4.4 Spark集群環境搭建 104
4.4.1 集群概況 105
4.4.2 搭建Hadoop集群 105
4.4.3 在集群中安裝Spark 106
4.4.4 配置環境變量 106
4.4.5 Spark的配置 106
4.4.6 啓動Spark集群 107
4.4.7 關閉Spark集群 107
4.5 在集群上運行Spark應用程序 108
4.5.1 啓動Spark集群 108
4.5.2 采用獨立集群管理器 108
4.5.3 采用Hadoop YARN管理器 109
4.6 本章小結 110
4.7 習題 111
實驗3 Spark和Hadoop的安裝 111
一、實驗目的 111
二、實驗平颱 111
三、實驗內容和要求 111
四、實驗報告 112
第5章 RDD編程 113
5.1 RDD編程基礎 114
5.1.1 RDD創建 114
5.1.2 RDD操作 115
5.1.3 持久化 121
5.1.4 分區 122
5.1.5 一個綜閤實例 126
5.2 鍵值對RDD 128
5.2.1 鍵值對RDD的創建 128
5.2.2 常用的鍵值對轉換操作 129
5.2.3 一個綜閤實例 133
5.3 數據讀寫 134
5.3.1 文件數據讀寫 135
5.3.2 讀寫HBase數據 137
5.4 綜閤實例 141
5.4.1 求TOP值 141
5.4.2 文件排序 143
5.4.3 二次排序 144
5.5 本章小結 146
實驗4 RDD編程初級實踐 146
一、實驗目的 146
二、實驗平颱 146
三、實驗內容和要求 146
四、實驗報告 148
第6章 Spark SQL 149
6.1 Spark SQL簡介 150
6.1.1 從Shark說起 150
6.1.2 Spark SQL架構 151
6.1.3 為什麼推齣Spark SQL 152
6.2 DataFrame概述 152
6.3 DataFrame的創建 153
6.4 DataFrame的保存 154
6.5 DataFrame的常用操作 155
6.6 從RDD轉換得到DataFrame 156
6.6.1 利用反射機製推斷RDD模式 157
6.6.2 使用編程方式定義RDD模式 158
6.7 使用Spark SQL讀寫數據庫 160
6.7.1 通過JDBC連接數據庫 160
6.7.2 連接Hive讀寫數據 162
6.8 本章小結 166
6.9 習題 166
實驗5 Spark SQL編程初級實踐 167
一、實驗目的 167
二、實驗平颱 167
三、實驗內容和要求 167
四、實驗報告 168
第7章 Spark Streaming 169
7.1 流計算概述 170
7.1.1 靜態數據和流數據 170
7.1.2 批量計算和實時計算 171
7.1.3 流計算概念 171
7.1.4 流計算框架 172
7.1.5 流計算處理流程 173
7.2 Spark Streaming 174
7.2.1 Spark Streaming設計 174
7.2.2 Spark Streaming與Storm的對比 175
7.2.3 從“Hadoop+Storm”架構轉嚮Spark架構 176
7.3 DStream操作概述 177
7.3.1 Spark Streaming工作機製 177
7.3.2 編寫Spark Streaming程序的基本步驟 178
7.3.3 創建StreamingContext對象 178
7.4 基本輸入源 179
7.4.1 文件流 179
7.4.2 套接字流 181
7.4.3 RDD隊列流 186
7.5 高級數據源 187
7.5.1 Kafka簡介 188
7.5.2 Kafka準備工作 188
7.5.3 Spark準備工作 189
7.5.4 編寫Spark Streaming程序使用Kafka數據源 190
7.6 轉換操作 194
7.6.1 DStream無狀態轉換操作 194
7.6.2 DStream有狀態轉換操作 195
7.7 輸齣操作 199
7.7.1 把DStream輸齣到文本文件中 199
7.7.2 把DStream寫入到關係數據庫中 200
7.8 本章小結 202
7.9 習題 202
實驗6 Spark Streaming編程初級實踐 203
一、實驗目的 203
二、實驗平颱 203
三、實驗內容和要求 203
四、實驗報告 204
第8章 Spark MLlib 205
8.1 基於大數據的機器學習 206
8.2 機器學習庫MLlib概述 207
8.3 基本數據類型 208
8.3.1 本地嚮量 208
8.3.2 標注點 208
8.3.3 本地矩陣 209
8.4 機器學習流水綫 210
8.4.1 流水綫的概念 210
8.4.2 流水綫工作過程 211
8.5 特徵提取、轉換和選擇 212
8.5.1 特徵提取 213
8.5.2 特徵轉換 215
8.5.3 特徵選擇 220
8.5.4 局部敏感哈希 221
8.6 分類算法 222
8.6.1 邏輯斯蒂迴歸分類器 222
8.6.2 決策樹分類器 226
8.7 聚類算法 229
8.7.1 K-Means聚類算法 230
8.7.2 GMM聚類算法 232
8.8 協同過濾算法 234
8.8.1 推薦算法的原理 235
8.8.2 ALS算法 235
8.9 模型選擇和超參數調整 239
8.9.1 模型選擇工具 239
8.9.2 用交叉驗證選擇模型 240
8.10 本章小結 242
8.11 習題 242
實驗7 Spark機器學習庫MLlib編程實踐 243
一、實驗目的 243
二、實驗平颱 243
三、實驗內容和要求 243
四、實驗報告 244
參考文獻 245
· · · · · · (
收起)