大數據處理框架Apache Spark設計與實現(全彩)

許利傑,方亞芬

  • 出版商: 電子工業
  • 出版日期: 2020-07-01
  • 定價: $636
  • 售價: 8.5$541
  • 語言: 簡體中文
  • 頁數: 276
  • ISBN: 7121391716
  • ISBN-13: 9787121391712
  • 相關分類: Spark大數據 Big-data
  • 立即出貨

買這商品的人也買了...

商品描述

近年來,以Apache Spark為代表的大數據處理框架在學術界和工業界得到了廣泛的使用。本書以Apache Spark框架為核心,總結了大數據處理框架的基礎知識、核心理論、典型的Spark應用,以及相關的性能和可靠性問題。本書分9章,主要包含四部分內容。第一部分 大數據處理框架的基礎知識(第1~2章):介紹大數據處理框架的基本概念、系統架構、編程模型、相關的研究工作,並以一個典型的Spark應用為例概述Spark應用的執行流程。第二部分 Spark大數據處理框架的核心理論(第3~4章):介紹Spark框架將應用程序轉化為邏輯處理流程,進而轉化為可並行執行的物理執行計劃的一般過程及方法。第三部分 典型的Spark應用(第5章):介紹迭代型的Spark機器學習應用和圖計算應用。第四部分 大數據處理框架性能和可靠性保障機制(第6~9章):介紹Spark框架的Shuffle機制、數據緩存機制、錯誤容忍機制、內存管理機制等。

目錄大綱

目 錄 第 1 章 大數據處理框架概覽 .....................2 1.1 大數據及其帶來的挑戰 ...................2 1.2 大數據處理框架 ...............................3 1.3 大數據應用及編程模型 ...................4 1.4 大數據處理框架的四層結構 ...........5 1.4.1 用戶層 ......................................... 7 1.4.2 分佈式數據並行處理層 ............11 1.4.3 資源管理與任務調度層 ........... 13 1.4.4 物理執行層 ............................... 15 1.5 錯誤容忍機制 .................................17 1.6 其他大數據處理框架 .....................18 1.7 本章小結 .........................................18 1.8 擴展閱讀 .........................................18 第 2 章 Spark 系統部署與應用運行的基本流程 .....................................20 2.1 Spark 安裝部署 ..............................20 2.2 Spark 系統架構 ..............................21 2.3 Spark 應用例子 ..............................24 2.3.1 用戶代碼基本邏輯 ................... 24 2.3.2 邏輯處理流程 ........................... 28 2.3.3 物理執行計劃 ........................... 32 2.3.4 可視化執行過程 ....................... 34 2.4 Spark 編程模型 ..............................38 2.5 本章小結 .........................................39 第 3 章 Spark 邏輯處理流程 ...................41 3.1 Spark 邏輯處理流程概覽 ..............41 3.2 Spark 邏輯處理流程生成方法 ......43 3.2.1 根據應用程序如何產生 RDD,產生什麽樣的 RDD ................ 44 3.2.2 如何建立 RDD 之間的數據依賴 關系.......................................... 44 3.2.3 如何計算 RDD 中的數據 ........ 49 3.3 常用 transformation() 數據操作 ....50 3.4 常用 action() 數據操作 ..................86 3.5 對比 MapReduce,Spark 的優缺點.................................................98 3.6 本章小結 .........................................99 3.7 擴展閱讀 .......................................100 第 4 章 Spark 物理執行計劃 .................101 4.1 Spark 物理執行計劃概覽 ............101 4.2 Spark 物理執行計劃生成方法 ....105 4.3 常用數據操作生成的物理執行計劃...............................................113 4.4 本章小結 .......................................121 4.5 擴展閱讀 .......................................121 第 5 章 迭代型 Spark 應用 ....................123 5.1 迭代型 Spark 應用的分類及特點...............................................123 5.2 迭代型機器學習應用 SparkLR ...124 5.2.1 應用描述 ................................ 124 5.2.2 算法原理 ................................ 125 5.2.3 基於 Spark 的並行化實現 ..... 129 5.2.4 深入討論 ................................. 131 5.3 迭代型機器學習應用——廣義 線性模型.......................................132 5.3.1 算法原理 ................................. 132 5.3.2 基於 Spark 的並行化實現 ..... 136 5.3.3 深入討論 ................................. 139 5.4 迭代型圖計算應用——PageRank ......................................140 5.4.1 應用描述 ................................. 140 5.4.2 基於 Spark 的並行化實現 ..... 143 5.4.3 深入討論 ................................. 149 5.5 本章小結 .......................................151 第 6 章 Shuffle 機制 ..............................153 6.1 Shuffle 的意義及設計挑戰 ..........153 6.2 Shuffle 的設計思想 ......................155 6.2.1 解決數據分區和數據聚合問題 ........................................ 156 6.2.2 解決 map() 端 combine問題 ........................................ 158 6.2.3 解決 sort 問題 ......................... 158 6.2.4 解決內存不足問題 ................. 159 6.3 Spark 中 Shuffle 框架的設計 .......160 6.3.1 Shuffle Write 框架設計和實現 ........................................ 161 6.3.2 Shuffle Read 框架設計和實現 ........................................ 166 6.4 支持高效聚合和排序的數據 結構...............................................170 6.4.1 AppendOnlyMap 的原理 ........ 171 6.4.2 ExternalAppendOnlyMap ...... 173 6.4.3 PartitionedAppendOnlyMap ... 176 6.4.4 PartitionedPairBuffer .............. 176 6.5 與 Hadoop MapReduce 的 Shuffle 機制對比.......................................177 6.6 本章小結 .......................................179 第 7 章 數據緩存機制 ...........................180 7.1 數據緩存的意義 ...........................180 7.2 數據緩存機制的設計原理 ...........181 7.2.1 決定哪些數據需要被緩存 ..... 181 7.2.2 包含數據緩存操作的邏輯處理流程和物理執行計劃 .... 184 7.2.3 緩存級別 ................................. 186 7.2.4 緩存數據的寫入方法 ............. 189 7.2.5 緩存數據的讀取方法 ............. 191 7.2.6 用戶接口的設計 ..................... 192 7.2.7 緩存數據的替換與回收方法 ........................................ 193 7.3 與 Hadoop MapReduce 的緩存機制進行對比...............................197 7.4 本章小結 .......................................198 第 8 章 錯誤容忍機制 ...........................199 8.1 錯誤容忍機制的意義及挑戰 .......199 8.2 錯誤容忍機制的設計思想 ...........201 8.3 重新電腦制 ...............................201 8.3.1 重新計算是否能夠得到與之前一樣的結果 ............................ 202 8.3.2 從哪裡開始重新計算 ............. 204 8.3.3 重新電腦制小結 ................. 207 8.4 checkpoint 機制的設計與實現 ....207 8.4.1 哪些數據需要使用 checkpoint機制 ........................................ 207 8.4.2 checkpoint 數據的寫入及接口 ........................................ 210 8.4.3 checkpoint 時機及計算順序 ... 212 8.4.4 checkpoint 數據的讀取 .......... 213 8.4.5 checkpoint 數據寫入和讀取的實現細節 ................................ 213 8.4.6 checkpoint 語句位置的影響.... 216 8.4.7 cache + checkpoint .................. 220 8.5 checkpoint 與數據緩存的區別 ....225 8.6 本章小結 .......................................226 第 9 章 內存管理機制 ...........................227 9.1 內存管理機制問題及挑戰 ...........227 9.2 應用內存消耗來源及影響因素 ...228 9.2.1 內存消耗來源 1:用戶代碼 .... 229 9.2.2 內存消耗來源 2:Shuffle 機制中產生的中間數據 ................ 230 9.2.3 內存消耗來源 3:緩存數據 .... 231 9.3 Spark 框架內存管理模型 ............232 9.3.1 靜態內存管理模型 ................. 233 9.3.2 統一內存管理模型 ................. 234 9.4 Spark 框架執行內存消耗與管理...............................................237 9.4.1 Shuffle Write 階段內存消耗及管理 ........................................ 239 9.4.2 Shuffle Read 階段內存消耗及管理 ........................................ 245 9.5 數據緩存空間管理 .......................249 9.5.1 RDD 緩存數據 ....................... 250 9.5.2 廣播數據 ................................. 253 9.5.3 task 的計算結果 ..................... 254 9.6 本章小結 .......................................256 參考文獻 .................................................258