《圖解Spark:核心技術與案例實戰》一書作者郭景瞻,電子工業出版社2017年1月出版
基本介紹
- 書名:圖解Spark:核心技術與案例實戰
- 作者:郭景瞻
- ISBN:978-7-121-30236-7
- 頁數:480
- 定價:99.00
- 出版社:電子工業出版社
- 出版時間:2017年1月
- 開本:16開
內容提要,目錄,
內容提要
《圖解Spark:核心技術與案例實戰》以Spark 2.0 版本為基礎進行編寫,全面介紹了Spark 核心及其生態圈組件技術。主要內容包括Spark 生態圈、實戰環境搭建、編程模型和內部重要模組的分析,重點介紹了訊息通信框架、作業調度、容錯執行、監控管理、存儲管理以及運行框架,同時還介紹了Spark 生態圈相關組件,包括Spark SQL 的即席查詢、Spark Streaming 的實時流處理套用、MLbase/MLlib 的機器學習、GraphX 的圖處理、SparkR 的數學計算和Alluxio 的分散式記憶體檔案系統等。
《圖解Spark:核心技術與案例實戰》從Spark 核心技術進行深入分析,重要章節會結合原始碼解讀其實現原理,圍繞著技術原理介紹了相關典型實例,讀者通過這些實例可以更加深入地理解Spark 的運行機制。另外《圖解Spark:核心技術與案例實戰》還套用了大量的圖表進行說明,讓讀者能夠更加直觀地理解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 小結