本書以Spark 2.0版本為基礎(chǔ)進行編寫,全面介紹了Spark核心及其生態(tài)圈組件技術(shù)。主要內(nèi)容包括Spark生態(tài)圈、實戰(zhàn)環(huán)境搭建、編程模型和內(nèi)部重要模塊的分析,重點介紹了消息通信框架、作業(yè)調(diào)度、容錯執(zhí)行、監(jiān)控管理、存儲管理以及運行框架,同時還介紹了Spark生態(tài)圈相關(guān)組件,包括了Spark SQL的即席查詢、Spark Streaming的實時流處理應(yīng)用、MLbase/MLlib的機器學(xué)習(xí)、GraphX的圖處理、SparkR的數(shù)學(xué)計算和Alluxio的分布式內(nèi)存文件系統(tǒng)等。本書從Spark核心技術(shù)進行深入分析,重要章節(jié)會結(jié)合源代碼解讀其實現(xiàn)原理,圍繞著技術(shù)原理介紹了相關(guān)典型實例,讀者通過這些實例可以更加深入地理解Spark的運行機制。另外本書還應(yīng)用了大量的圖表進行說明,通過這種方式讓讀者能夠更加直觀地理解Spark相關(guān)原理。
郭景瞻,現(xiàn)就職京東商城,開源技術(shù)愛好者,對Spark等大數(shù)據(jù)系統(tǒng)有較為深入的研究,對Spark應(yīng)用開發(fā)、運維和測試有較多的經(jīng)驗,喜歡深入閱讀Spark源代碼,分析其核心原理和運行機制。
第1章 Spark及其生態(tài)圈概述
1.1 Spark簡介
1.1.1 什么是Spark
1.1.2 Spark與MapReduce比較
1.1.3 Spark的演進路線圖
1.2 Spark生態(tài)系統(tǒng)
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 小結(jié)
第2章 搭建Spark實戰(zhàn)環(huán)境
2.1 基礎(chǔ)環(huán)境搭建
2.1.1 搭建集群樣板機
2.1.2 配置集群環(huán)境
2.2 編譯Spark源代碼
2.2.1 配置Spark編譯環(huán)境
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實戰(zhàn)開發(fā)環(huán)境
2.4.1 CentOS中部署IDEA
2.4.2 使用IDEA開發(fā)程序
2.4.3 使用IDEA閱讀源代碼
2.5 小結(jié)
第二篇 核心篇
第3章 Spark編程模型
3.1 RDD概述
3.1.1 背景
3.1.2 RDD簡介
3.1.3 RDD的類型
3.2 RDD的實現(xiàn)
3.2.1 作業(yè)調(diào)度
3.2.2 解析器集成
3.2.3 內(nèi)存管理
3.2.4 檢查點支持
3.2.5 多用戶管理
3.3 編程接口
3.3.1 RDD分區(qū)(Partitions)
3.3.2 RDD首選位置(PreferredLocations)
3.3.3 RDD依賴關(guān)系(Dependencies)
3.3.4 RDD分區(qū)計算(Iterator)
3.3.5 RDD分區(qū)函數(shù)(Partitioner)
3.4 創(chuàng)建操作
3.4.1 并行化集合創(chuàng)建操作
3.4.2 外部存儲創(chuàng)建操作
3.5 轉(zhuǎn)換操作
3.5.1 基礎(chǔ)轉(zhuǎn)換操作
3.5.2 鍵值轉(zhuǎn)換操作
3.6 控制操作
3.7 行動操作
3.7.1 集合標量行動操作
3.7.2 存儲行動操作
3.8 小結(jié)
第4章 Spark核心原理
4.1 消息通信原理
4.1.1 Spark消息通信架構(gòu)
4.1.2 Spark啟動消息通信
4.1.3 Spark運行時消息通信
4.2 作業(yè)執(zhí)行原理
4.2.1 概述
4.2.2 提交作業(yè)
4.2.3 劃分調(diào)度階段
4.2.4 提交調(diào)度階段
4.2.5 提交任務(wù)
4.2.6 執(zhí)行任務(wù)
4.2.7 獲取執(zhí)行結(jié)果
4.3 調(diào)度算法
4.3.1 應(yīng)用程序之間
4.3.2 作業(yè)及調(diào)度階段之間
4.3.3 任務(wù)之間
4.4 容錯及HA
4.4.1 Executor異常
4.4.2 Worker異常
4.4.3 Master異常
4.5 監(jiān)控管理
4.5.1 UI監(jiān)控
4.5.2 Metrics
4.5.3 REST
4.6 實例演示
4.6.1 計算年降水實例
4.6.2 HA配置實例
4.7 小結(jié)
第5章 Spark存儲原理
5.1 存儲分析
5.1.1 整體架構(gòu)
5.1.2 存儲級別
5.1.3 RDD存儲調(diào)用
5.1.4 讀數(shù)據(jù)過程
5.1.5 寫數(shù)據(jù)過程
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 小結(jié)
第6章 Spark運行架構(gòu)
6.1 運行架構(gòu)總體介紹
6.1.1 總體介紹
6.1.2 重要類介紹
6.2 本地(Local)運行模式
6.2.1 運行模式介紹
6.2.2 實現(xiàn)原理
6.3 偽分布(Local-Cluster)運行模式
6.3.1 運行模式介紹
6.3.2 實現(xiàn)原理
6.4 獨立(Standalone)運行模式
6.4.1 運行模式介紹
6.4.2 實現(xiàn)原理
6.5 YARN運行模式
6.5.1 YARN運行框架
6.5.2 YARN-Client運行模式介紹
6.5.3 YARN-Client 運行模式實現(xiàn)原理
6.5.4 YARN-Cluster運行模式介紹
6.5.5 YARN-Cluster 運行模式實現(xiàn)原理
6.5.6 YARN-Client與YARN-Cluster對比
6.6 Mesos運行模式
6.6.1 Mesos介紹
6.6.2 粗粒度運行模式介紹
6.6.3 粗粒度實現(xiàn)原理
6.6.4 細粒度運行模式介紹
6.6.5 細粒度實現(xiàn)原理
6.6.6 Mesos粗粒度和Mesos細粒度對比
6.7 實例演示
6.7.1 獨立運行模式實例
6.7.2 YARN-Client實例
6.7.3 YARN-Cluster實例
6.8 小結(jié)
第三篇 組件篇
第7章 Spark SQL
7.1 Spark SQL簡介
7.1.1 Spark SQL發(fā)展歷史
7.1.2 DataFrame/Dataset介紹
7.2 Spark SQL運行原理
7.2.1 通用SQL執(zhí)行原理
7.2.2 SparkSQL運行架構(gòu)
7.2.3 SQLContext運行原理分析
7.2.4 HiveContext介紹
7.3 使用Hive-Console
7.3.1 編譯Hive-Console
7.3.2 查看執(zhí)行計劃
7.3.3 應(yīng)用Hive-Console
7.4 使用SQLConsole
7.4.1 啟動HDFS和Spark Shell
7.4.2 與RDD交互操作
7.4.3 讀取JSON格式數(shù)據(jù)
7.4.4 讀取Parquet格式數(shù)據(jù)
7.4.5 緩存演示
7.4.6 DSL演示
7.5 使用Spark SQL CLI
7.5.1 配置并啟動Spark SQL CLI
7.5.2 實戰(zhàn)Spark SQL CLI
7.6 使用Thrift Server
7.6.1 配置并啟動Thrift Server
7.6.2 基本操作
7.6.3 交易數(shù)據(jù)實例
7.6.4 使用IDEA開發(fā)實例
7.7 實例演示
7.7.1 銷售數(shù)據(jù)分類實例
7.7.2 網(wǎng)店銷售數(shù)據(jù)統(tǒng)計
7.8 小結(jié)
第8章 Spark Streaming
8.1 Spark Streaming簡介
8.1.1 術(shù)語定義
8.1.2 Spark Streaming特點
8.2 Spark Streaming編程模型
8.2.1 DStream的輸入源
8.2.2 DStream的操作
8.3 Spark Streaming運行架構(gòu)
8.3.1 運行架構(gòu)
8.3.2 消息通信
8.3.3 Receiver分發(fā)
8.3.4 容錯性
8.4 Spark Streaming運行原理
8.4.1 啟動流處理引擎
8.4.2 接收及存儲流數(shù)據(jù)
8.4.3 數(shù)據(jù)處理
8.5 實例演示
8.5.1 流數(shù)據(jù)模擬器
8.5.2 銷售數(shù)據(jù)統(tǒng)計實例
8.5.3 Spark Streaming+Kafka實例
8.6 小結(jié)
第9章 Spark MLlib
9.1 Spark MLlib簡介
9.1.1 Spark MLlib介紹
9.1.2 Spark MLlib數(shù)據(jù)類型
9.1.3 Spark MLlib基本統(tǒng)計方法
9.1.4 預(yù)言模型標記語言
9.2 線性模型
9.2.1 數(shù)學(xué)公式
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 協(xié)同過濾
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 范數(shù)化
9.10 頻繁模式挖掘
9.10.1 頻繁模式增長
9.10.2 關(guān)聯(lián)規(guī)則挖掘
9.10.3 PrefixSpan
9.11 實例演示
9.11.1 K-means聚類算法實例
9.11.2 手機短信分類實例
9.12 小結(jié)
第10章 Spark GraphX
10.1 GraphX介紹
10.1.1 圖計算
10.1.2 GraphX介紹
10.1.3 發(fā)展歷程
10.2 GraphX實現(xiàn)分析
10.2.1 GraphX圖數(shù)據(jù)模型
10.2.2 GraphX圖數(shù)據(jù)存儲
10.2.3 GraphX圖切分策略
10.2.4 GraphX圖操作
10.3 實例演示
10.3.1 圖例演示
10.3.2 社區(qū)發(fā)現(xiàn)演示
10.4 小結(jié)
第11章 SparkR
11.1 概述
11.1.1 R語言介紹
11.1.2 SparkR介紹
11.2 SparkR與DataFrame
11.2.1 DataFrames介紹
11.2.2 與DataFrame的相關(guān)操作
11.3 編譯安裝SparkR
11.3.1 編譯安裝R語言
11.3.2 安裝SparkR運行環(huán)境
11.3.3 安裝SparkR
11.3.4 啟動并驗證安裝
11.4 實例演示
11.5 小結(jié)
第12章 Alluxio
12.1 Alluxio簡介
12.1.1 Alluxio介紹
12.1.2 Alluxio系統(tǒng)架構(gòu)
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 啟動環(huán)境
12.4.2 Alluxio上運行Spark
12.4.3 Alluxio上運行MapReduce
12.5 小結(jié)
本書附錄部分請到博文視點網(wǎng)站下載www.broadview.com.cn/30236。