Spark大數據處理技術

Spark大數據處理技術

《Spark大數據處理技術》是2015年1月電子工業出版社出版的圖書,作者是夏俊鸞、程浩、邵賽賽。

基本介紹

  • 書名:Spark大數據處理技術
  • 作者:夏俊鸞、程浩、邵賽賽
  • ISBN:9787121250811
  • 頁數:356頁
  • 定價:65元
  • 出版社:電子工業出版社
  • 出版時間:2015年1月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書以Spark 0.9版本為基礎進行編寫,是一本全面介紹Spark及Spark生態圈相關技術的書籍,是國內首本深入介紹 Spark 原理和架構的技術書籍。主要內容有 Spark 基礎功能介紹及內部重要模組分析,包括部署模式、調度框架、存儲管理以及套用監控;同時也詳細介紹了 Spark 生態圈中其他的軟體和模組,包括 SQL 處理引擎 Shark 和 Spark SQL、流式處理引擎 Spark Streaming、圖計算框架 Graphx 以及分散式記憶體檔案系統 Tachyon。本書從概念和原理上對 Spark 核心框架和生態圈做了詳細的解讀,並對 Spark 的套用現狀和未來發展做了一定的介紹,旨在為大數據從業人員和 Spark愛好者提供一個更深入學習的平台。
本書適合任何大數據、Spark 領域的從業人員閱讀,同時也為架構師、軟體開發工程師和大數據愛好者展現了一個現代大數據框架的架構原理和實現細節。相信通過學習本書,讀者能夠熟悉和掌握 Spark 這一當前流行的大數據框架,並將其投入到生產實踐中去。

圖書目錄

第1章 Spark系統概述 15
1.1 大數據處理框架 15
1.2 Spark大數據處理框架 17
1.2.1 RDD表達能力 17
1.2.2 Spark子系統 18
1.3 小結 21
第2章 Spark RDD及編程接口 23
2.1 Spark程式“Hello World” 23
2.2 Spark RDD 26
2.2.1 RDD分區(Partition)27
2.2.2 RDD優先位置(preferredLocations)28
2.2.3 RDD依賴關係(Dependencies)29
2.2.4 RDD分區計算(Compute) 34
2.2.5 RDD分區函式(partitioner)35
2.3 創建操作 39
2.3.1 集合創建操作 39
2.3.2 存儲創建操作 40
2.4 轉換操作 42
2.4.1 RDD 基本轉換操作 42
2.4.2 鍵值RDD 轉換操作 52
2.4.3 再論RDD 依賴關係 59
2.5 控制操作(control operation) 61
2.6 行動操作(action operation) 63
2.6.1 集合標量行動操作 63
2.6.2 存儲行動操作 68
2.7 小結 72
第3 章 Spark 運行模式及原理 74
3.1 Spark 運行模式概述 74
3.1.1 Spark 運行模式列表74
3.1.2 Spark 基本工作流程 75
3.1.3 相關基本類 77
3.2 Local 模式 80
3.2.1 部署及程式運行80
3.2.2 內部實現原理 80
3.3 Standalone 模式 81
3.3.1 部署及程式運行 81
3.3.2 內部實現原理 85
3.4 Local-cluster 模式 86
3.4.1 部署及程式運行 86
3.4.2 內部實現原理 86
3.5 Mesos 模式 87
3.5.1 部署及程式運行 87
3.5.2 內部實現原理 88
3.6 Yarn standalone / Yarn cluster 模式 91
3.6.1 部署及程式運行 91
3.6.2 內部實現原理 93
3.7 Yarn Client 模式 94
3.7.1 部署及程式運行 94
3.7.2 內部實現原理 95
3.8 各種模式的實現細節比較 96
3.8.1 環境變數的傳遞 97
3.8.2 Jar 包和各種依賴檔案的分發 99
3.8.3 任務管理和序列化 101
3.8.4 用戶參數配置 102
3.8.5 用戶及許可權控制 103
3.9 Spark 1.0 版本之後的變化 104
3.10 小結 105
第4 章 Spark 調度管理原理 106
4.1 Spark 作業調度管理概述 106
4.2 Spark 調度相關基本概念 107
4.3 作業調度模組頂層邏輯概述 108
4.4 作業調度具體工作流程 112
4.4.1 調度階段的拆分113
4.4.2 調度階段的提交 117
4.4.3 任務集的提交 119
4.4.4 完成狀態的監控 119
4.4.5 任務結果的獲取 121
4.5 任務集管理模組詳解 122
4.6 調度池和調度模式分析 124
4.7 其他調度相關內容 126
4.7.1 Spark 套用之間的調度關係 126
4.7.2 調度過程中的數據本地性問題 127
4.8 小結 127
第5章 Spark 的存儲管理 128
5.1 存儲管理模組整體架構 128
5.1.1 通信層架構 129
5.1.2 通信層訊息傳遞 132
5.1.3 註冊存儲管理模組 133
5.1.4 存儲層架構 134
5.1.5 數據塊 (Block) 136
5.2 RDD 持久化 137
5.2.1 RDD 分區和數據塊的關係 137
5.2.2 記憶體快取 138
5.2.3 磁碟快取 139
5.2.4 持久化選項 141
5.2.5 如何選擇不同的持久化選項 142
5.3 Shuffle 數據持久化 143
5.4 廣播(Broadcast)變數持久化 146
5.5 小結 146
第6 章 Spark 監控管理 148
6.1 UI 管理 148
6.1.1 實時UI 管理 149
6.1.2 歷史UI 管理 154
6.2 Metrics 管理 155
6.2.1 Metrics 系統架構 156
6.2.2 Metrics 系統配置 157
6.2.3 輸入源(Metrics Source)介紹 159
6.2.4 輸出方式(Metrics Sink)介紹 160
6.3 小結 162
第7 章 Shark 架構與安裝配置 163
7.1 Shark 架構淺析 164
7.2 Hive/Shark 各功能組件對比分析 165
7.2.1 MetaStore 165
7.2.2 CLI/ Beeline 165
7.2.3 JDBC/ODBC 166
7.2.4 HiveServer/2 與 SharkServer/2 166
7.2.5 Driver 167
7.2.6 SQL Parser 168
7.2.7 查詢最佳化器(Query Optimizer)169
7.2.8 物理計畫與執行 169
7.3 Shark 安裝配置與使用 171
7.3.1 安裝前準備工作 171
7.3.2 不同運行模式下的安裝Shark 172
7.3.2.1 單機運行模式 172
7.3.2.2 集群運行模式 172
7.3.2.3 運行在亞馬遜AWS 174
7.4 Shark SQL 命令行工具(CLI)174
7.5 使用Shark Shell 178
7.6 啟動SharkServer 178
7.7 SharkServer2 配置與啟動 179
7.8 快取數據表 180
7.8.1 數據快取級別 180
7.8.2 創建不同快取級別的Shark 數據表 180
7.8.3 指定數據表快取策略 181
7.8.4 使用Tachyon 182
7.9 常見問題分析 182
7.9.1 OutOfMemory 異常 183
7.9.2 數據處理吞吐量低 183
7.9.3 Shark 查詢比Hive 慢 184
7.10 小結 184
第8 章 Shark 程式開發與擴展 186
8.1 SQL API 186
8.1.1 JDBC 接口訪問Shark 187
8.1.2 ODBC 接口訪問Shark 188
8.1.3 sql2rdd API 188
8.2 擴展Shark 191
8.2.1 ObjectInspector 介紹 191
8.2.2 自定義函式 195
8.3 SerDe 自定義數據存取格式 218
8.4 StorageHandler 自定義數據存取 219
8.5 小結 221
第9 章 Spark SQL 222
9.1 邏輯架構 222
9.1.1 Catalyst 功能邊界 223
9.1.2 SQL 解析階段 224
9.1.3 邏輯計畫元數據綁定和語義分析階段 224
9.1.4 邏輯計畫最佳化最佳化階段 224
9.1.5 物理計畫生成階段 225
9.1.6 Shark 和Spark SQL 對比 225
9.2 Catalyst 上下文(Context) 226
9.2.1 SQLContext 227
9.2.2 HiveContext 228
9.3 SQL API 228
9.3.1 構建/使用SQLContext 和HiveContext 229
9.3.2 SchemaRDD 229
9.3.3 Row 對象 232
9.3.4 數據類型 233
9.3.5 DSL API 舉例 233
9.3.6 表達式計算 235
9.3.7 Parquet 列式存儲檔案 237
9.3.8 代碼演示 238
Spark 與大數據開源技術
11
9.4 Java API 241
9.5 小結 241
第10 章 Spark Streaming 242
流數據處理框架 242
10.1 快速入門 243
10.2 SparkStreaming 基本概念 245
10.2.1 連結和初始化 245
10.2.2 時間和視窗概念 246
10.2.3 DStream 原理 248
10.2.4 DStream 輸入源 249
10.2.5 DStream 操作 250
10.2.6 DStream 持久化 253
10.3 性能調優 253
10.3.1 運行時間最佳化 253
10.3.2 記憶體使用最佳化 254
10.4 容錯處理 255
10.4.1 工作節點失效 255
10.4.2 驅動節點失效 256
10.5 DStream 作業的產生和調度 258
10.5.1 作業產生 258
10.5.2 作業調度 259
10.5.3 Streaming 作業與Spark 作業之間的關係 260
10.6 DStream 與RDD 之間關係 262
10.7 數據接收原理 264
10.8 自定義數據輸入源 268
10.9 自定義監控接口(StreamingListener) 270
10.10 Spark Streaming 案例分析 271
10.11 小結 273
第11 章 275
GraphX 計算框架 275
11.1 圖並行計算 275
11.1.1 數據並行與圖並行計算 275
11.1.2 圖並行計算框架簡介 276
11.1.3 GraphX 簡介 280
11.2 Graphx 模型設計280
11.2.1 數據模型 280
11.1.2 圖計算接口 281
11.3 GraphX 模型實現 285
11.3.1 圖的分散式存儲 285
11.3.2 圖操作執行策略 295
11.3.3 圖操作執行最佳化 296
11.3.4 序列化和反序列化 300
11.3.5 GraphX 內置算法庫 301
11.4 GraphX 套用 302
11.4.1 Pregel 模型 302
11.4.2 N 維鄰接關係計算 305
11.5 小結 308
第12 章 Tachyon 檔案系統 310
12.1 設計原理 311
12.1.1 高效的記憶體讀寫 311
12.1.2 無副本的可靠性實現——lineage 314
12.2 框架設計 316
12.2.1 主節點 317
12.2.2 工作節點 321
12.2.3 客戶端 324
12.2.4 讀寫工作流程 324
12.3 Tachyon 的部署 331
12.3.1 單機部署 331
12.3.2 分散式部署 333
12.3.3 Tachyon 的配置 335
12.4 Tachyon 套用 339
12.4.1 Shark 原始表(RawTable) 339
12.4.2 Spark – RDD 343
12.4.3 Tachyon 用戶接口(API) 345
12.4.3.2 Java 程式接口(API) 347
12.5 相關項目討論 354
12.6 小結 355

相關詞條

熱門詞條

聯絡我們