圖解Spark:核心技術與案例實戰

圖解Spark:核心技術與案例實戰

作者: 郭景瞻
出版社: 電子工業
出版在: 2017-01-01
ISBN-13: 9787121302367
ISBN-10: 7121302365
裝訂格式: 平裝
總頁數: 466 頁





內容描述


<內容簡介>
本書以Spark 2.0 版本為基礎進行編寫,全面介紹了Spark 核心及其生態圈組件技術。主要內容包括Spark 生態圈、實戰環境搭建、編程模型和內部重要模塊的分析,重點介紹了消息通信框架、作業調度、容錯執行、監控管理、存儲管理以及運行框架,同時還介紹了Spark 生態圈相關組件,包括了Spark SQL 的即席查詢、Spark Streaming 的實時流處理應用、MLbase/MLlib 的機器學習、GraphX 的圖處理、SparkR 的數學計算和Alluxio 的分佈式內存文件系統等。本書從Spark 核心技術進行深入分析,重要章節會結合源代碼解讀其實現原理,圍繞著技術原理介紹了相關典型實例,讀者通過這些實例可以更加深入地理解Spark 的運行機制。另外本書還應用了大量的圖表進行說明,通過這種方式讓讀者能夠更加直觀地理解Spark 相關原理。

<章節目錄>
第1章 Spark及其生態圈概述 1.1 Spark簡介 1.1.1 什麽是Spark 1.1.2 Spark與MapReduce比較 1.1.3 Spark的演進路線圖 1.2 Spark生態系統 1.2.1 Spark Core 1.2.2 Spark Streaming 1.2.3 Spark SQL 1.2.4 BlinkDB 1.2.5 MLBase/MLlib 1.2.6 GraphX 1.2.7 SparkR 1.2.8 Alluxio 1.3 小結 第2章 搭建Spark實戰環境 2.1 基礎環境搭建 2.1.1 搭建集群樣板機 2.1.2 配置集群環境 2.2 編譯Spark源代碼 2.2.1 配置Spark編譯環境 2.2.2 使用Maven編譯Spark 2.2.3 使用SBT編譯Spark 2.2.4 生成Spark部署包 2.3 搭建Spark運行集群 2.3.1 修改配置文件 2.3.2 啟動Spark 2.3.3 驗證啟動 2.3.4 第一個實例 2.4 搭建Spark實戰開發環境 2.4.1 CentOS中部署IDEA 2.4.2 使用IDEA開發程序 2.4.3 使用IDEA閱讀源代碼 2.5 小結
第二篇 核心篇第3章 Spark編程模型 3.1 RDD概述 3.1.1 背景 3.1.2 RDD簡介 3.1.3 RDD的類型 3.2 RDD的實現 3.2.1 作業調度 3.2.2 解析器集成 3.2.3 內存管理 3.2.4 檢查點支持 3.2.5 多用戶管理 3.3 編程接口 3.3.1 RDD分區(Partitions) 3.3.2 RDD首選位置(PreferredLocations) 3.3.3 RDD依賴關系(Dependencies) 3.3.4 RDD分區計算(Iterator) 3.3.5 RDD分區函數(Partitioner) 3.4 創建操作 3.4.1 並行化集合創建操作 3.4.2 外部存儲創建操作 3.5 轉換操作 3.5.1 基礎轉換操作 3.5.2 鍵值轉換操作 3.6 控制操作 3.7 行動操作 3.7.1 集合標量行動操作 3.7.2 存儲行動操作 3.8 小結 第4章 Spark核心原理 4.1 消息通信原理 4.1.1 Spark消息通信架構 4.1.2 Spark啟動消息通信 4.1.3 Spark運行時消息通信 4.2 作業執行原理 4.2.1 概述 4.2.2 提交作業 4.2.3 劃分調度階段 4.2.4 提交調度階段 4.2.5 提交任務 4.2.6 執行任務 4.2.7 獲取執行結果 4.3 調度算法 4.3.1 應用程序之間 4.3.2 作業及調度階段之間 4.3.3 任務之間 4.4 容錯及HA 4.4.1 Executor異常 4.4.2 Worker異常 4.4.3 Master異常 4.5 監控管理 4.5.1 UI監控 4.5.2 Metrics 4.5.3 REST 4.6 實例演示 4.6.1 計算年降水實例 4.6.2 HA配置實例 4.7 小結 第5章 Spark存儲原理 5.1 存儲分析 5.1.1 整體架構 5.1.2 存儲級別 5.1.3 RDD存儲調用 5.1.4 讀數據過程 5.1.5 寫數據過程 5.2 Shuffle分析 5.2.1 Shuffle簡介 5.2.2 Shuffle的寫操作 5.2.3 Shuffle的讀操作 5.3 序列化和壓縮 5.3.1 序列化 5.3.2 壓縮 5.4 共享變量 5.4.1 廣播變量 5.4.2 累加器 5.5 實例演示 5.6 小結 第6章 Spark運行架構 6.1 運行架構總體介紹 6.1.1 總體介紹 6.1.2 重要類介紹 6.2 本地(Local)運行模式 6.2.1 運行模式介紹 6.2.2 實現原理 6.3 偽分佈(Local-Cluster)運行模式 6.3.1 運行模式介紹 6.3.2 實現原理 6.4 獨立(Standalone)運行模式 6.4.1 運行模式介紹 6.4.2 實現原理 6.5 YARN運行模式 6.5.1 YARN運行框架 6.5.2 YARN-Client運行模式介紹 6.5.3 YARN-Client 運行模式實現原理 6.5.4 YARN-Cluster運行模式介紹 6.5.5 YARN-Cluster 運行模式實現原理 6.5.6 YARN-Client與YARN-Cluster對比 6.6 Mesos運行模式 6.6.1 Mesos介紹 6.6.2 粗粒度運行模式介紹 6.6.3 粗粒度實現原理 6.6.4 細粒度運行模式介紹 6.6.5 細粒度實現原理 6.6.6 Mesos粗粒度和Mesos細粒度對比 6.7 實例演示 6.7.1 獨立運行模式實例 6.7.2 YARN-Client實例 6.7.3 YARN-Cluster實例 6.8 小結
第三篇 組件篇第7章 Spark SQL 7.1 Spark SQL簡介 7.1.1 Spark SQL發展歷史 7.1.2 DataFrame/Dataset介紹 7.2 Spark SQL運行原理 7.2.1 通用SQL執行原理 7.2.2 SparkSQL運行架構 7.2.3 SQLContext運行原理分析 7.2.4 HiveContext介紹 7.3 使用Hive-Console 7.3.1 編譯Hive-Console 7.3.2 查看執行計劃 7.3.3 應用Hive-Console 7.4 使用SQLConsole 7.4.1 啟動HDFS和Spark Shell 7.4.2 與RDD交互操作 7.4.3 讀取JSON格式數據 7.4.4 讀取Parquet格式數據 7.4.5 緩存演示 7.4.6 DSL演示 7.5 使用Spark SQL CLI 7.5.1 配置並啟動Spark SQL CLI 7.5.2 實戰Spark SQL CLI 7.6 使用Thrift Server 7.6.1 配置並啟動Thrift Server 7.6.2 基本操作 7.6.3 交易數據實例 7.6.4 使用IDEA開發實例 7.7 實例演示 7.7.1 銷售數據分類實例 7.7.2 網店銷售數據統計 7.8 小結 第8章 Spark Streaming 8.1 Spark Streaming簡介 8.1.1 術語定義 8.1.2 Spark Streaming特點 8.2 Spark Streaming編程模型 8.2.1 DStream的輸入源 8.2.2 DStream的操作 8.3 Spark Streaming運行架構 8.3.1 運行架構 8.3.2 消息通信 8.3.3 Receiver分發 8.3.4 容錯性 8.4 Spark Streaming運行原理 8.4.1 啟動流處理引擎 8.4.2 接收及存儲流數據 8.4.3 數據處理 8.5 實例演示 8.5.1 流數據模擬器 8.5.2 銷售數據統計實例 8.5.3 Spark Streaming+Kafka實例 8.6 小結 第9章 Spark MLlib 9.1 Spark MLlib簡介 9.1.1 Spark MLlib介紹 9.1.2 Spark MLlib數據類型 9.1.3 Spark MLlib基本統計方法 9.1.4 預言模型標記語言 9.2 線性模型 9.2.1 數學公式 9.2.2 線性回歸 9.2.3 線性支持向量機 9.2.4 邏輯回歸 9.2.5 線性最小二乘法、Lasso和嶺回歸 9.2.6 流式線性回歸 9.3 決策樹 9.4 決策模型組合 9.4.1 隨機森林 9.4.2 梯度提升決策樹 9.5 樸素貝葉斯 9.6 協同過濾 9.7 聚類 9.7.1 K-means 9.7.2 高斯混合 9.7.3 快速迭代聚類 9.7.4 LDA 9.7.5 二分K-means 9.7.6 流式K-means 9.8 降維 9.8.1 奇異值分解降維 9.8.2 主成分分析降維 9.9 特徵提取和變換 9.9.1 詞頻—逆文檔頻率 9.9.2 詞向量化工具 9.9.3 標準化 9.9.4 範數化 9.10 頻繁模式挖掘 9.10.1 頻繁模式增長 9.10.2 關聯規則挖掘 9.10.3 PrefixSpan 9.11 實例演示 9.11.1 K-means聚類算法實例 9.11.2 手機短信分類實例 9.12 小結 第10章 Spark GraphX 10.1 GraphX介紹 10.1.1 圖計算 10.1.2 GraphX介紹 10.1.3 發展歷程 10.2 GraphX實現分析 10.2.1 GraphX圖數據模型 10.2.2 GraphX圖數據存儲 10.2.3 GraphX圖切分策略 10.2.4 GraphX圖操作 10.3 實例演示 10.3.1 圖例演示 10.3.2 社區發現演示 10.4 小結 第11章 SparkR 11.1 概述 11.1.1 R語言介紹 11.1.2 SparkR介紹 11.2 SparkR與DataFrame 11.2.1 DataFrames介紹 11.2.2 與DataFrame的相關操作 11.3 編譯安裝SparkR 11.3.1 編譯安裝R語言 11.3.2 安裝SparkR運行環境 11.3.3 安裝SparkR 11.3.4 啟動並驗證安裝 11.4 實例演示 11.5 小結 第12章 Alluxio 12.1 Alluxio簡介 12.1.1 Alluxio介紹 12.1.2 Alluxio系統架構 12.1.3 HDFS與Alluxio 12.2 Alluxio編譯部署 12.2.1 編譯Alluxio 12.2.2 單機部署Alluxio 12.2.3 集群模式部署Alluxio 12.3 Alluxio命令行使用 12.3.1 接口說明 12.3.2 接口操作示例 12.4 實例演示 12.4.1 啟動環境 12.4.2 Alluxio上運行Spark 12.4.3 Alluxio上運行MapReduce 12.5 小結




相關書籍

Go Programming Blueprints - Second Edition

作者 Mat Ryer

2017-01-01

Angular Projects - Second Edition: Build modern web apps by exploring Angular 12 with 10 different projects and cutting-edge technologies

作者 Bampakos Aristeidis

2017-01-01

雲端時代三大基石之儲存篇:大數據時代的資料新範式 (舊名: 大數據大時代:新一代儲存技術及實作)

作者 查偉

2017-01-01