基本簡介
本書是Spark實戰指南,全書共分8章。前4章介紹Spark的部署、工作機制和核心,後4章分別通過實戰項目介紹Spark SQL、Spark Streaming、Spark GraphX和Spark MLib功能模組。此外,本書詳細介紹了常見的實戰問題,比如大數據環境下的配置設定、程式調優等。本書附帶的一鍵安裝腳本,更能為初學者提供很大幫助。
圖書目錄
第1 章 Spark 與大數據 1
1.1 大數據的發展及現狀 1
1.1.1 大數據時代所面臨的問題 1
1.1.2 谷歌的大數據解決方案 2
1.1.3 Hadoop 生態系統 3
1.2 Spark 應時而生 4
1.2.1 Spark 的起源 4
1.2.2 Spark 的特點 5
1.2.3 Spark 的未來發展 6
第2 章 Spark 基礎 8
2.1 Spark 本地單機模式體驗 8
2.1.1 安裝虛擬機 8
2.1.2 安裝JDK 19
2.1.3 下載Spark 預編譯包 21
2.1.4 本地體驗Spark 22
2.2 高可用Spark 分散式集群部署 25
2.2.1 集群總覽 26
2.2.2 集群機器的型號選擇 28
2.2.3 初始化集群機器環境 29
2.2.4 部署ZooKeeper 集群 33
2.2.5 編譯Spark 35
2.2.6 部署Spark Standalone 集群 37
2.2.7 高可用Hadoop 集群 40
2.2.8 讓Spark 運行在YARN 上 40
2.2.9 一鍵部署高可用Hadoop +
Spark 集群 42
2.3 Spark 編程指南 43
2.3.1 互動式編程 43
2.3.2 RDD 創建 44
2.3.3 RDD 操作 47
2.3.4 使用其他語言開發Spark 程式 54
2.4 打包和提交 54
2.4.1 編譯、連結、打包 54
2.4.2 提交 56
第3 章 Spark 工作機制 58
3.1 調度管理 58
3.1.1 集群概述及名詞解釋 58
3.1.2 Spark 程式之間的調度 60
3.1.3 Spark 程式內部的調度 63
3.2 記憶體管理 65
3.2.1 RDD 持久化 65
3.2.2 共享變數 66
3.3 容錯機制 67
3.3.1 容錯體系概述 67
3.3.2 Master 節點失效 68
3.3.3 Slave 節點失效 69
3.4 監控管理 69
3.4.1 Web 界面 69
3.4.2 REST API 72
3.4.3 Metrics 指標體系 73
3.4.4 其他監控工具 73
3.5 Spark 程式配置管理 73
3.5.1 Spark 程式配置載入過程 74
3.5.2 環境變數配置 74
3.5.3 Spark 屬性項配置 74
3.5.4 查看當前的配置 76
3.5.5 配置Spark 日誌 76
第4 章 Spark 核心講解 77
4.1 Spark 核心數據結構RDD 77
4.1.1 RDD 的定義 78
4.1.2 RDD 的Transformation 80
4.1.3 RDD 的Action 82
4.1.4 Shuffle 83
4.2 SparkContext 84
4.2.1 SparkConf 配置 84
4.2.2 初始化過程 85
4.2.3 其他功能接口 87
4.3 DAG 調度 87
4.3.1 DAGScheduler 87
4.3.2 TaskScheduler 90
第5 章 Spark SQL 與數據倉庫 92
5.1 Spark SQL 基礎 93
5.1.1 分散式SQL 引擎 93
5.1.2 支持的SQL 語法 97
5.1.3 支持的數據類型 98
5.1.4 DataFrame 99
5.1.5 DataFrame 數據源 103
5.1.6 性能調優 104
5.2 Spark SQL 原理和運行機制 104
5.2.1 Spark SQL 整體架構 105
5.2.2 Catalyst 執行最佳化器 105
5.3 套用場景:基於淘寶數據建立電商
數據倉庫 110
5.3.1 電商數據倉庫場景 111
5.3.2 數據準備和表設計 111
5.3.3 用Spark SQL 來完成日常運營
數據分析 115
5.3.4 Spark SQL 在大規模數據下的
性能表現 120
第6 章 Spark 流式計算 122
6.1 Spark Streaming 基礎知識 123
6.1.1 入門簡單示例 123
6.1.2 基本概念 124
6.1.3 高級操作 129
6.2 深入理解Spark Streaming 132
6.2.1 DStream 的兩類操作 132
6.2.2 容錯處理 134
6.2.3 性能調優 136
6.2.4 與Storm 的對比 137
6.3 套用場景:一個類似百度統計的流式
實時系統 139
6.3.1 Web log 實時統計場景 139
6.3.2 日誌實時採集 140
6.3.3 流式分析系統實現 140
第7 章 Spark 圖計算 149
7.1 什麼是圖計算 149
7.1.1 圖的基本概念 149
7.1.2 圖計算的套用 150
7.2 Spark GraphX 簡介 151
7.2.1 GraphX 實現 151
7.2.2 GraphX 常用API 介紹 152
7.3 套用場景:基於新浪微博數據的社交
網路分析 153
7.3.1 社交網路分析的主要套用 153
7.3.2 社區發現算法簡介 154
7.3.3 用GraphX 實現Louvain
算法 156
7.3.4 小試牛刀:誰是你的閨蜜 162
7.3.5 真實的場景:新浪微博關係
分析 164
第8 章 Spark MLlib 169
8.1 機器學習簡介 169
8.1.1 什麼是機器學習 169
8.1.2 機器學習示例 171
8.1.3 機器學習的基本方法 172
8.1.4 機器學習的常見技巧 173
8.1.5 機器學習參考資料 174
8.2 MLlib 庫簡介 174
8.2.1 基礎數據類型 174
8.2.2 主要的庫 175
8.2.3 附帶的示例程式 176
8.3 套用場景:搜尋廣告點擊率
預估系統 178
8.3.1 套用場景 178
8.3.2 邏輯回歸 179
8.3.3 學習算法 181
8.3.4 模型評估 184
8.3.5 數據準備 186
8.3.6 模型訓練 187
8.3.7 模型調優 195
附錄 Scala 語言參考 197