本書以Spark 2.0版本為基礎(chǔ)進(jìn)行編寫,全面介紹了Spark核心及其生態(tài)圈組件技術(shù)。主要內(nèi)容包括Spark生態(tài)圈、實(shí)戰(zhàn)環(huán)境搭建、編程模型和內(nèi)部重要模塊的分析,重點(diǎn)介紹了消息通信框架、作業(yè)調(diào)度、容錯(cuò)執(zhí)行、監(jiān)控管理、存儲(chǔ)管理以及運(yùn)行框架,同時(shí)還介紹了Spark生態(tài)圈相關(guān)組件,包括了Spark SQL的即席查詢、Spark Streaming的實(shí)時(shí)流處理應(yīng)用、MLbase/MLlib的機(jī)器學(xué)習(xí)、GraphX的圖處理、SparkR的數(shù)學(xué)計(jì)算和Alluxio的分布式內(nèi)存文件系統(tǒng)等。本書從Spark核心技術(shù)進(jìn)行深入分析,重要章節(jié)會(huì)結(jié)合源代碼解讀其實(shí)現(xiàn)原理,圍繞著技術(shù)原理介紹了相關(guān)典型實(shí)例,讀者通過這些實(shí)例可以更加深入地理解Spark的運(yùn)行機(jī)制。另外本書還應(yīng)用了大量的圖表進(jìn)行說明,通過這種方式讓讀者能夠更加直觀地理解Spark相關(guān)原理。
郭景瞻,現(xiàn)就職京東商城,開源技術(shù)愛好者,對(duì)Spark等大數(shù)據(jù)系統(tǒng)有較為深入的研究,對(duì)Spark應(yīng)用開發(fā)、運(yùn)維和測(cè)試有較多的經(jīng)驗(yàn),喜歡深入閱讀Spark源代碼,分析其核心原理和運(yùn)行機(jī)制。
第1章 Spark及其生態(tài)圈概述
1.1 Spark簡(jiǎn)介
1.1.1 什么是Spark
1.1.2 Spark與MapReduce比較
1.1.3 Spark的演進(jìn)路線圖
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實(shí)戰(zhàn)環(huán)境
2.1 基礎(chǔ)環(huán)境搭建
2.1.1 搭建集群樣板機(jī)
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運(yùn)行集群
2.3.1 修改配置文件
2.3.2 啟動(dòng)Spark
2.3.3 驗(yàn)證啟動(dòng)
2.3.4 第一個(gè)實(shí)例
2.4 搭建Spark實(shí)戰(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簡(jiǎn)介
3.1.3 RDD的類型
3.2 RDD的實(shí)現(xiàn)
3.2.1 作業(yè)調(diào)度
3.2.2 解析器集成
3.2.3 內(nèi)存管理
3.2.4 檢查點(diǎn)支持
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ū)計(jì)算(Iterator)
3.3.5 RDD分區(qū)函數(shù)(Partitioner)
3.4 創(chuàng)建操作
3.4.1 并行化集合創(chuàng)建操作
3.4.2 外部存儲(chǔ)創(chuàng)建操作
3.5 轉(zhuǎn)換操作
3.5.1 基礎(chǔ)轉(zhuǎn)換操作
3.5.2 鍵值轉(zhuǎn)換操作
3.6 控制操作
3.7 行動(dòng)操作
3.7.1 集合標(biāo)量行動(dòng)操作
3.7.2 存儲(chǔ)行動(dòng)操作
3.8 小結(jié)
第4章 Spark核心原理
4.1 消息通信原理
4.1.1 Spark消息通信架構(gòu)
4.1.2 Spark啟動(dòng)消息通信
4.1.3 Spark運(yùn)行時(shí)消息通信
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 容錯(cuò)及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 實(shí)例演示
4.6.1 計(jì)算年降水實(shí)例
4.6.2 HA配置實(shí)例
4.7 小結(jié)
第5章 Spark存儲(chǔ)原理
5.1 存儲(chǔ)分析
5.1.1 整體架構(gòu)
5.1.2 存儲(chǔ)級(jí)別
5.1.3 RDD存儲(chǔ)調(diào)用
5.1.4 讀數(shù)據(jù)過程
5.1.5 寫數(shù)據(jù)過程
5.2 Shuffle分析
5.2.1 Shuffle簡(jiǎn)介
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 實(shí)例演示
5.6 小結(jié)
第6章 Spark運(yùn)行架構(gòu)
6.1 運(yùn)行架構(gòu)總體介紹
6.1.1 總體介紹
6.1.2 重要類介紹
6.2 本地(Local)運(yùn)行模式
6.2.1 運(yùn)行模式介紹
6.2.2 實(shí)現(xiàn)原理
6.3 偽分布(Local-Cluster)運(yùn)行模式
6.3.1 運(yùn)行模式介紹
6.3.2 實(shí)現(xiàn)原理
6.4 獨(dú)立(Standalone)運(yùn)行模式
6.4.1 運(yùn)行模式介紹
6.4.2 實(shí)現(xiàn)原理
6.5 YARN運(yùn)行模式
6.5.1 YARN運(yùn)行框架
6.5.2 YARN-Client運(yùn)行模式介紹
6.5.3 YARN-Client 運(yùn)行模式實(shí)現(xiàn)原理
6.5.4 YARN-Cluster運(yùn)行模式介紹
6.5.5 YARN-Cluster 運(yùn)行模式實(shí)現(xiàn)原理
6.5.6 YARN-Client與YARN-Cluster對(duì)比
6.6 Mesos運(yùn)行模式
6.6.1 Mesos介紹
6.6.2 粗粒度運(yùn)行模式介紹
6.6.3 粗粒度實(shí)現(xiàn)原理
6.6.4 細(xì)粒度運(yùn)行模式介紹
6.6.5 細(xì)粒度實(shí)現(xiàn)原理
6.6.6 Mesos粗粒度和Mesos細(xì)粒度對(duì)比
6.7 實(shí)例演示
6.7.1 獨(dú)立運(yùn)行模式實(shí)例
6.7.2 YARN-Client實(shí)例
6.7.3 YARN-Cluster實(shí)例
6.8 小結(jié)
第三篇 組件篇
第7章 Spark SQL
7.1 Spark SQL簡(jiǎn)介
7.1.1 Spark SQL發(fā)展歷史
7.1.2 DataFrame/Dataset介紹
7.2 Spark SQL運(yùn)行原理
7.2.1 通用SQL執(zhí)行原理
7.2.2 SparkSQL運(yùn)行架構(gòu)
7.2.3 SQLContext運(yùn)行原理分析
7.2.4 HiveContext介紹
7.3 使用Hive-Console
7.3.1 編譯Hive-Console
7.3.2 查看執(zhí)行計(jì)劃
7.3.3 應(yīng)用Hive-Console
7.4 使用SQLConsole
7.4.1 啟動(dòng)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 配置并啟動(dòng)Spark SQL CLI
7.5.2 實(shí)戰(zhàn)Spark SQL CLI
7.6 使用Thrift Server
7.6.1 配置并啟動(dòng)Thrift Server
7.6.2 基本操作
7.6.3 交易數(shù)據(jù)實(shí)例
7.6.4 使用IDEA開發(fā)實(shí)例
7.7 實(shí)例演示
7.7.1 銷售數(shù)據(jù)分類實(shí)例
7.7.2 網(wǎng)店銷售數(shù)據(jù)統(tǒng)計(jì)
7.8 小結(jié)
第8章 Spark Streaming
8.1 Spark Streaming簡(jiǎn)介
8.1.1 術(shù)語(yǔ)定義
8.1.2 Spark Streaming特點(diǎn)
8.2 Spark Streaming編程模型
8.2.1 DStream的輸入源
8.2.2 DStream的操作
8.3 Spark Streaming運(yùn)行架構(gòu)
8.3.1 運(yùn)行架構(gòu)
8.3.2 消息通信
8.3.3 Receiver分發(fā)
8.3.4 容錯(cuò)性
8.4 Spark Streaming運(yùn)行原理
8.4.1 啟動(dòng)流處理引擎
8.4.2 接收及存儲(chǔ)流數(shù)據(jù)
8.4.3 數(shù)據(jù)處理
8.5 實(shí)例演示
8.5.1 流數(shù)據(jù)模擬器
8.5.2 銷售數(shù)據(jù)統(tǒng)計(jì)實(shí)例
8.5.3 Spark Streaming+Kafka實(shí)例
8.6 小結(jié)
第9章 Spark MLlib
9.1 Spark MLlib簡(jiǎn)介
9.1.1 Spark MLlib介紹
9.1.2 Spark MLlib數(shù)據(jù)類型
9.1.3 Spark MLlib基本統(tǒng)計(jì)方法
9.1.4 預(yù)言模型標(biāo)記語(yǔ)言
9.2 線性模型
9.2.1 數(shù)學(xué)公式
9.2.2 線性回歸
9.2.3 線性支持向量機(jī)
9.2.4 邏輯回歸
9.2.5 線性最小二乘法、Lasso和嶺回歸
9.2.6 流式線性回歸
9.3 決策樹
9.4 決策模型組合
9.4.1 隨機(jī)森林
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 標(biāo)準(zhǔn)化
9.9.4 范數(shù)化
9.10 頻繁模式挖掘
9.10.1 頻繁模式增長(zhǎng)
9.10.2 關(guān)聯(lián)規(guī)則挖掘
9.10.3 PrefixSpan
9.11 實(shí)例演示
9.11.1 K-means聚類算法實(shí)例
9.11.2 手機(jī)短信分類實(shí)例
9.12 小結(jié)
第10章 Spark GraphX
10.1 GraphX介紹
10.1.1 圖計(jì)算
10.1.2 GraphX介紹
10.1.3 發(fā)展歷程
10.2 GraphX實(shí)現(xiàn)分析
10.2.1 GraphX圖數(shù)據(jù)模型
10.2.2 GraphX圖數(shù)據(jù)存儲(chǔ)
10.2.3 GraphX圖切分策略
10.2.4 GraphX圖操作
10.3 實(shí)例演示
10.3.1 圖例演示
10.3.2 社區(qū)發(fā)現(xiàn)演示
10.4 小結(jié)
第11章 SparkR
11.1 概述
11.1.1 R語(yǔ)言介紹
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語(yǔ)言
11.3.2 安裝SparkR運(yùn)行環(huán)境
11.3.3 安裝SparkR
11.3.4 啟動(dòng)并驗(yàn)證安裝
11.4 實(shí)例演示
11.5 小結(jié)
第12章 Alluxio
12.1 Alluxio簡(jiǎn)介
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 單機(jī)部署Alluxio
12.2.3 集群模式部署Alluxio
12.3 Alluxio命令行使用
12.3.1 接口說明
12.3.2 接口操作示例
12.4 實(shí)例演示
12.4.1 啟動(dòng)環(huán)境
12.4.2 Alluxio上運(yùn)行Spark
12.4.3 Alluxio上運(yùn)行MapReduce
12.5 小結(jié)
本書附錄部分請(qǐng)到博文視點(diǎn)網(wǎng)站下載www.broadview.com.cn/30236。