Spark海量數據處理 技術詳解與平臺實戰( 簡體 字) | |
作者:范東來 | 類別:1. -> 程式設計 -> Spark |
出版社:人民郵電出版社 | 3dWoo書號: 52159 詢問書籍請說出此書號! 有庫存 NT售價: 495 元 |
出版日:12/1/2019 | |
頁數:388 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115507006 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第 一部分 基礎篇
第 1章 序篇 2 1.1 Spark與BDAS 3 1.2 Databricks 4 1.3 如何通過GitHub向Spark貢獻代碼 5 1.4 如何選擇Spark編程語言 8 1.5 函數式編程思想 9 1.6 小結 12 第 2章 Spark編程 13 2.1 Spark架構 13 2.2 Spark 2.x與Spark 3.x 15 2.2.1 Tungsten項目 16 2.2.2 統一Dataset和DataFrame 接口 20 2.2.3 新一代流處理技術:Structured Streaming與持續型應用 21 2.2.4 Hydrogen項目和Spark 3.x 22 2.3 部署Spark 26 2.3.1 Spark on YARN 27 2.3.2 Spark on Mesos 28 2.3.3 Spark Standalone 29 2.3.4 Spark on Kubernetes 30 2.3.5 安裝Spark 31 2.3.6 提交作業 31 2.3.7 Spark Shell 33 2.3.8 初始化SparkSession 34 2.4 RDD與算子 34 2.4.1 RDD 34 2.4.2 創建RDD 36 2.4.3 轉換算子 38 2.4.4 行動算子 43 2.4.5 RDD血統與Spark容錯 45 2.5 Spark Shuffle 47 2.5.1 Hash Shuffle 47 2.5.2 Sort-based Shuffle 49 2.6 共享變量 50 2.6.1 廣播變量 50 2.6.2 累加器 53 2.7 Spark的多語言支持 55 2.7.1 PySpark 55 2.7.2 SparkR 56 2.8 Spark性能調優 56 2.8.1 硬件配置與資源管理平臺 57 2.8.2 參數調優與應用調優 57 2.9 使用Jupyter Notebook基于Spark探索數據:蒙特卡羅方法預測股票價格 64 2.9.1 Jupyter Notebook 64 2.9.2 用蒙特卡羅方法預測股票價格 67 2.10 小結 70 第3章 Spark統一編程接口:DataFrame、Dataset和Spark SQL 71 3.1 Catalyst優化器 72 3.1.1 SQL抽象語法樹 72 3.1.2 從ULEP到RLEP的過程 73 3.1.3 調優RLEP 73 3.1.4 全階段代碼生成 74 3.2 DataFrame API 75 3.2.1 創建DataFrame 75 3.2.2 查詢 77 3.2.3 窗口函數 80 3.2.4 用戶自定義函數 83 3.2.5 寫入 85 3.3 Dataset API 86 3.3.1 RDD、DataFrame和Dataset 87 3.3.2 安全類型的UDAF 88 3.4 Spark SQL 89 3.4.1 創建臨時視圖 90 3.4.2 使用Hive元數據 90 3.4.3 查詢語句 91 3.4.4 函數 94 3.4.5 用戶自定義函數 97 3.5 Google Dremel與列式存儲 97 3.5.1 Apache Parquet 99 3.5.2 Apache ORC 100 3.5.3 Apache CarbonData 100 3.5.4 對比測試 101 3.6 使用Spark SQL進行數據探索 102 3.7 小結 107 第4章 Spark流處理:Spark Streaming 與Structured Streaming 108 4.1 一個Spark Streaming流處理的例子 109 4.2 消息送達保證 110 4.3 Google MillWheel系統和Google Dataflow模型 114 4.3.1 Google MillWheel設計思想 114 4.3.2 Google MillWheel如何實現“恰好一次”消息送達語義 114 4.3.3 Google MillWheel對亂序數據與晚到數據的處理 115 4.3.4 Google Dataflow:流處理和批處理的統一與取舍 117 4.4 Spark Streaming 122 4.4.1 關鍵抽象與架構 123 4.4.2 無狀態的轉換算子 125 4.4.3 有狀態的轉換算子 129 4.4.4 輸入與輸出 134 4.4.5 Spark Streaming與Spark SQL 138 4.4.6 容錯與結果正確性 139 4.4.7 性能調優 141 4.5 Structured Streaming 144 4.5.1 關鍵抽象與架構 144 4.5.2 操作 147 4.5.3 輸入和輸出 154 4.5.4 股票交易價格實時分析 157 4.6 流處理技術對比 162 4.7 小結 163 第5章 Spark圖計算:GraphX 164 5.1 圖模式 164 5.1.1 圖結構 164 5.1.2 圖存儲 165 5.1.3 圖數據庫 168 5.1.4 圖挖掘技術 169 5.1.5 屬性圖與RDF 170 5.2 生成圖 171 5.2.1 從已有數據中生成 172 5.2.2 通過GraphGenerators生成 174 5.3 圖算子 175 5.3.1 屬性算子 175 5.3.2 結構算子 175 5.3.3 連接算子 175 5.3.4 aggregateMessages 176 5.4 Pregel API 177 5.4.1 圖分區 177 5.4.2 像頂點一樣思考 180 5.4.3 用戶自定義函數 182 5.4.4 PageRank的GraphX實現 183 5.4.5 標簽傳播算法 186 5.5 SQL on Graph 187 5.5.1 生成圖 188 5.5.2 SQL查詢 189 5.5.3 模式發現 190 5.5.4 一些GraphX已經有的算法 191 5.5.5 一些GraphX沒有的算法 191 5.5.6 AggregateMessages 192 5.6 n度鄰居頂點算法 193 5.7 小結 196 第6章 Spark機器學習:MLlib 197 6.1 機器學習 197 6.1.1 典型的機器學習工作流 198 6.1.2 機器學習任務的學習類型 199 6.2 Spark MLlib與Spark ML 201 6.3 數據預處理 205 6.3.1 數據標準化 205 6.3.2 缺失值處理 207 6.3.3 特征抽取 208 6.3.4 特征選擇 212 6.4 分類算法應用 214 6.4.1 決策樹 214 6.4.2 隨機森林 217 6.4.3 人體狀態監測器 218 6.4.4 集成學習 223 6.4.5 梯度提升決策樹 224 6.5 聚類算法應用 225 6.5.1 物以類聚 225 6.5.2 k均值聚類算法 226 6.5.3 實現 227 6.6 推薦系統應用 230 6.6.1 基于用戶的協同過濾 231 6.6.2 基于商品的協同過濾 233 6.6.3 兩種協同過濾的對比 235 6.6.4 基于模型的協同過濾 236 6.6.5 Movielens電影推薦系統 237 6.7 訓練之后 238 6.7.1 模型評估 239 6.7.2 交叉驗證與超參調優 241 6.8 流式機器學習 242 6.8.1 流回歸 242 6.8.2 流聚類 244 6.8.3 用流處理應用來監控模型 245 6.9 小結 249 第7章 Spark深度學習:Deeplearning4j 250 7.1 常見的深度學習框架 251 7.2 Deeplearning4j 252 7.3 卷積神經網絡 252 7.3.1 理解卷積神經網絡 252 7.3.2 用Deeplearning4j訓練卷積神經網絡 254 7.4 循環神經網絡 257 7.4.1 理解循環神經網絡 258 7.4.2 用Deeplearning4j訓練循環神經網絡 262 7.5 自動編碼器 264 7.5.1 理解自動編碼器 264 7.5.2 用Deeplearning4j訓練自動編碼器 267 7.6 使用GPU 269 7.7 小結 270 第8章 分布式存儲:Alluxio 271 8.1 Alluxio架構 271 8.1.1 Alluxio的組成部分 273 8.1.2 虛擬的Alluxio 273 8.1.3 統一而透明的命名空間 274 8.2 快速上手Alluxio 275 8.2.1 安裝Alluxio 275 8.2.2 Alluxio配置 276 8.2.3 Alluxio血統機制 277 8.3 與上層框架集成 277 8.3.1 與Spark集成 278 8.3.2 與Presto集成 279 8.3.3 與HBase集成 280 8.4 與底層存儲系統集成 281 8.4.1 與Ceph集成 281 8.4.2 掛載其他文件系統 281 8.5 如何訪問Alluxio 282 8.6 Alluxio應用案例 283 8.6.1 攜程網 283 8.6.2 滴滴出行 284 8.6.3 陌陌 286 8.7 小結 288 第二部分 應用篇 第9章 企業數據湖與Lambda架構 290 9.1 數據湖 290 9.1.1 數據的湖泊 290 9.1.2 數據湖要解決的問題 291 9.1.3 數據湖與數據倉庫對比 292 9.1.4 數據湖如何工作 293 9.2 Lambda架構 293 9.2.1 批處理層 294 9.2.2 服務層 295 9.2.3 速度層 295 9.2.4 Lambda架構 296 9.2.5 Lambda架構的原則 297 9.3 基于Lambda架構的數據湖分層設計 297 9.3.1 數據獲取層 298 9.3.2 消息層 299 9.3.3 數據攝取層 300 9.3.4 數據存儲層 300 9.3.5 Lambda層 301 9.4 Lambda架構的應用 301 9.4.1 搜索引擎 301 9.4.2 Druid 302 9.5 構建Lambda架構的技術 303 9.6 小結 304 第 10章 大數據企業動態背景調查平臺 305 10.1 企業背景調查 305 10.2 基于大數據的企業動態背景調查 308 10.2.1 企業行為信息 308 10.2.2 企業關聯方分析 311 10.3 數據采集與數據字典 313 10.4 企業背景調查平臺需求 317 10.4.1 企業關聯圖譜展示 317 10.4.2 企業風險指標計算 318 10.5 企業關聯圖譜的模式 318 10.6 傳統數據倉庫架構 320 10.7 小結 321 第 11章 平臺設計 322 11.1 平臺架構 322 11.1.1 數據源 323 11.1.2 數據管道 323 11.1.3 速度層 325 11.1.4 批處理層 325 11.1.5 服務層 325 11.1.6 查詢層 325 11.1.7 可視化組件 325 11.2 物理拓撲 326 11.3 服務層圖數據庫設計 326 11.4 項目規劃 327 11.5 小結 327 第 12章 數據管道層 328 12.1 安裝并配置canal 328 12.2 實現Kafka生產者 330 12.3 安裝并配置Flume 335 12.4 小結 336 第 13章 速度層 337 13.1 速度層輸入 337 13.1.1 類型1 338 13.1.2 類型2 338 13.1.3 類型3 339 13.1.4 類型4 340 13.2 Cypher基礎 341 13.2.1 寫入 342 13.2.2 讀取 343 13.2.3 刪除 344 13.3 生成Cypher語句 345 13.3.1 類型1 345 13.3.2 類型2 346 13.3.3 類型3 346 13.3.4 類型4 346 13.3.5 實現 347 13.4 整合Structured Streaming 352 13.4.1 Neo4jWriter 353 13.4.2 啟動流 354 13.5 小結 355 第 14章 批處理層 356 14.1 自融風險監測 356 14.2 生成主數據集 357 14.2.1 全量與增量 358 14.2.2 合并 359 14.2.3 數據治理 361 14.3 用GraphX計算企業自融風險值 363 14.4 導入HBase 364 14.5 調度中心 366 14.5.1 Airflow 366 14.5.2 配置 368 14.6 小結 370 第 15章 服務層與查詢層 371 15.1 不僅僅是合并 371 15.1.1 NetworkX 372 15.1.2 計算流程 372 15.2 接口開發 372 15.3 小結 376 第三部分 總結篇 第 16章 總結和展望 378 16.1 統一的大數據處理接口 378 16.1.1 Unified Spark 378 16.1.2 Apache Beam 379 16.2 Kappa架構 380 16.3 大數據處理技術 382 16.3.1 Apache Flink 382 16.3.2 Apache Apex 383 16.3.3 Ray 384 16.4 Spark未來發展方向 386 本書基于Spark發行版2.4.4寫作而成,包含大量的實例與一個完整項目,層次分明,循序漸進。全書分為3部分,涵蓋了技術理論與實戰,讀者可以從實戰中鞏固學習到的知識。第一部分主要圍繞BDAS(伯克利數據分析棧),不僅介紹了如何開發Spark應用的基礎內容,還介紹了Structured Streaming、Spark機器學習、Spark圖挖掘、Spark深度學習等高級主題,此外還介紹了Alluxio系統。第二部分實現了一個企業背景調查系統,比較新穎的是,該系統借鑒了數據湖與Lambda架構的思想,涵蓋了批處理、流處理應用開發,并加入了一些開源組件來滿足需求,既是對本書第一部分很好的鞏固,又完整呈現了一個實時大數據應用的開發過程。第三部分是對全書的總結和展望。
本書適合準備學習Spark的開發人員和數據分析師,以及準備將Spark應用到實際項目中的開發人員和管理人員閱讀,也適合計算機相關專業的高年級本科生和研究生學習和參考,對于具有一定的Spark使用經驗并想進一步提升的數據科學從業者也是很好的參考資料。 |