[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • 大數據處理框架Apache Spark設計與實現(全彩)(博文視點出品)
    該商品所屬分類:圖書 -> 電子工業出版社
    【市場價】
    849-1232
    【優惠價】
    531-770
    【作者】 許利傑 
    【所屬類別】 電子工業出版社 
    【出版社】電子工業出版社 
    【ISBN】9787121391712
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:電子工業出版社
    ISBN:9787121391712
    版次:1

    商品編碼:12924768
    品牌:電子工業出版社
    包裝:平裝

    開本:16開
    出版時間:2020-07-01
    用紙:膠版紙

    頁數:276
    正文語種:中文

    作者:許利傑

        
        
    "

    編輯推薦

    內容簡介

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

    作者簡介

    許利傑現任中國科學院軟件研究所副研究員、碩士生導師,於中科院軟件所獲得博士學位。當前主要從事大數據繫統方面的研究工作,已在國際權威會議如VLDB、ICDCS、IPDPS、ISSRE、ICAC等發表論文10餘篇,主持多項國家自然科學基金,以及華為、京東、聯想等企業的合作研發項目。曾為Apache Spark和Hadoop修復多個內核代碼嚴重錯誤,編寫的SparkInternals技術文檔被社區廣泛關注,獲得四千多顆星。博士期間曾在微軟亞洲研究院、阿裡巴巴、騰訊擔任客座研究學生。目前還擔任中國計算機學會繫統軟件專委會委員、中國科學院青年創新促進會會員。方亞芬現任中國科學院軟件研究所工程師,於南開大學獲得學士學位、中科院軟件所獲得碩士學位。當前主要從事大數據繫統、操作繫統方面的研發工作,參與多項國家自然科學基金、國家重點研發計劃,以及華為、騰訊、中國郵政等企業的合作研發項目。曾在阿裡巴巴等擔任客座研究學生,目前是華為openEuler社區樹莓派項目負責人。

    目錄

    目 錄
    第 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

    查看全部↓

    前言/序言

    關於 Apach Spark

    2003—2006 年,Google 在計算機繫統領域會議 SOSP/OSDI 上發表了 Google File System、MapReduce、BigTable 3 篇重量級的繫統論文,分別討論了大規模數據如何存儲、處理及結構化組織。之後,Apache Hadoop 社區對這些論文進行了開源實現,開發了HDFS 分布式文件繫統、Hadoop MapReduce 大數據處理框架和 HBase 分布式 Key-Value數據庫,大大降低了大數據應用開發、運行及數據存儲管理的難度。這些繫統被廣泛應用於互聯網、電信、金融、科研等領域,以進行大規模數據存儲與處理。對於大數據處理框架來說,MapReduce 成功地將函數式編程思想引入分布式數據處理中,僅僅用兩個函數(map() 和 reduce())就解決了一大類的大數據處理問題,而且不要求用戶熟悉分布式文件繫統。然而,隨著大數據應用越來越多,處理性能的要求越來越高,MapReduce 的一些缺點也顯現出來。例如,MapReduce 編程模型的表達能力較弱,僅使用map() 和 reduce() 兩個函數難以實現復雜的數據操作;處理流程固定,不容易實現迭代計算;基於磁盤進行數據傳遞,效率較低。這些缺點導致使用 MapReduce 開發效率較低、執行復雜的數據處理任務的性能也不高。

    為了解決這些問題,微軟在 2008—2009 年研發了 Dryad/DryadLINQ,其中 Dryad 類 似 MapReduce,但以有向無環圖(Directed Acycline Graph,DAG)形式的數據流取代了MapReduce 固定的 map-reduce 兩階段數據流,處理流程更通用,支持復雜的數據處理任務。DryadLINQ 為 Dryad 提供了高層編程語言,將更多的函數式編程思想(來源於 C# 的LINQ)引入編程模型中,表達能力更強,如容易實現 join() 等操作。然而,由於 Dryad/DryadLINQ 在當時沒有開源,所以沒有得到大規模使用。鋻於 MapReduce、Dryad 等框架存在一些問題,2012 年,UC Berkeley 的 AMPLab 研發並開源了新的大數據處理框架 Spark。其核心思想包括兩方面:一方面對大數據處理框架的輸入 / 輸出、中間數據進行建模,將這些數據抽像為統一的數據結構,命名為彈性分布式數據集(Resilient Distributed Dataset,RDD),並在此數據結構上構建了一繫列通用

    的數據操作,使得用戶可以簡單地實現復雜的數據處理流程;另一方面采用基於內存的數據聚合、數據緩存等機制來加速應用執行,尤其適用於迭代和交互式應用。Spark 采用EPFL 大學研發的函數式編程語言 Scala 實現,並且提供了 Scala、Java、Python、R 四種語言的接口,以方便開發者使用熟悉的語言進行大數據應用開發。

    經過多年的發展,Spark 也與 Hadoop 一樣構建了完整的生態繫統。Apache Spark 生態繫統以 Spark 處理框架為核心,在上層構建了面向 SQL 語言的 Spark SQL 框架、面向大規模圖計算的 GraphX 框架、面向大規模機器學習的 MLlib 框架及算法庫,以及面向流處理的 Spark Streaming 框架;在下層,Spark 及其關聯社區也推出了相關存儲繫統,如基於內存的分布式文件繫統 Alluxio、支持 ACID 事務的數據湖繫統 Delta Lake 等。由於整個Spark 生態繫統中包含的繫統和框架眾多,本書主要關注生態繫統中核心的 Spark 處理框架本身。下面介紹本書的一些基本信息。

    本書的寫作目的及面向的讀者

    本書的寫作目的是以 Spark 框架為核心,總結大數據處理框架的設計和實現原理,包括框架設計中面臨的基本問題、可能的解決方案、Spark 采用的方案、具體實現方法,以及優缺點等。與機器學習等領域有成熟的理論模型不同,大數據處理框架並沒有一個完整的理論模型,但是具有一些繫統設計模型及設計方案,如編程模型、邏輯處理流程、物理執行計劃及並行化方案等。這些模型及方案是研究人員和工程師在實踐中經過不斷探索和改進得到的實踐經驗。本書的目的是將這些寶貴經驗抽像總結為繫統設計模型和方案,幫助讀者從理論層和實現層深入理解大數據處理框架,具體體現如下。

    (1)幫助讀者理解 Spark 應用,以及與 Spark 關聯的上下層框架。Spark 等大數據處理框架隻將數據接口和操作接口暴露給用戶,用戶一般不了解應用程序是如何被轉化為可分布執行任務的,以及任務是如何執行的。本書詳細總結了 Spark 框架將應用程序轉化為邏輯處理流程,並進一步轉化為物理執行計劃的一般過程。理解這個過程將幫助讀者理解更復雜的 Spark 應用,如在第 5 章中介紹的迭代型機器學習應用和圖計算應用。同時,理解 Spark 的設計與實現原理也有助於理解 Spark 生態圈中的上下層框架之間的關繫,如Spark SQL、MLlib、GraphX 是如何利用 Spark 框架來執行 SQL、機器學習和圖計算任務的。

    (2)幫助讀者開發性能更好、可靠性更高的大數據應用。用戶在運行大數據應用時,經常面臨應用執行效率低下、無響應、I/O 異常、內存溢出等性能和可靠性問題。本書講述了與 Spark 框架性能和可靠性相關的 Shuffle 機制、數據緩存機制、錯誤容忍機制、內存管理機制等。理解 Spark 應用性能和可靠性的影響因素,幫助讀者在運行 Spark 應用時進行參數調優,有助於更好地利用數據緩存來提升應用性能,同時合理利用數據持久化機制來減少執行錯誤、內存溢出等可靠性問題。

    (3)幫助讀者對 Spark 等大數據框架進行進一步優化和改進。在實際使用大數據處理框架的過程中,開發者經常會因為軟硬件環境、數據特征、應用邏輯、執行性能的特殊需求,需要對 Spark 框架的部分功能進行優化改進。例如,在內存較小的集群上運行需要對內存管理進行改進,經常出現網絡阻塞時需要對 Shuffle 機制進行改進,針對一些特殊應用需要開發新的數據操作等。要對 Spark 框架進行改進,不僅需要非常了解 Spark 框架的設計和實現原理,還需要清楚改進後可能出現的正確性和可靠性問題。本書對 Spark 設計和實現過程中的問題挑戰、解決方案、優缺點的闡述將幫助開發者和研究人員對框架進行優化改進。

    因此,我們相信,本書對於大數據處理框架的用戶、開發者和研究人員都會有一定的幫助。

    本書的主要內容

    本書主要介紹 Apache Spark 大數據處理框架的設計和實現原理,附帶討論與 Hadoop MapReduce 等框架的優缺點對比。全書分 9 章,主要包含以下四部分內容。第一部分 大數據處理框架的基礎知識。第 1 章介紹大數據處理框架的基本概念、繫統架構,以及與其相關的研究工作。第 2 章概覽 Spark 的繫統架構、編程模型,並以一個典型的 Spark 應用為例概述 Spark 應用的執行流程。Spark 初學者可以直接從第 2 章開始閱讀。

    第二部分 Spark 大數據處理框架的核心理論。該部分包括兩章,主要介紹 Spark 如何將應用程序轉化為可以分布執行的計算任務。其中,第 3 章介紹 Spark 將應用程序轉化為邏輯處理流程的一般過程及方法,並對常用的數據操作進行詳細分析。第 4 章討論 Spark將邏輯處理流程轉化為物理執行計劃的一般過程及方法,以及常用的數據操作形成的計算任務。

    第三部分 典型的 Spark 應用。第 5 章介紹復雜的迭代型 Spark 應用,包括迭代型機器學習應用和圖計算應用,以及這些應用的並行化方法。這些應用也進一步驗證了 Spark框架的通用性。

    第四部分 大數據處理框架性能和可靠性保障機制。該部分主要探究 Spark 框架性能和可靠性相關的技術,其中包括第 6 章的 Shuffle 機制、第 7 章的數據緩存機制、第 8 章的錯誤容忍機制及第 9 章的內存管理機制。

    本書特點

    本書注重設計原理和實現方案的闡述,寫作方式考慮了技術深度、研究價值、易讀性等因素,具體特點如下。

    (1)采用問題驅動的闡述方式。本書在章節開頭或者中間引入 Spark 設計和實現過程中面臨的挑戰性問題(Problems),然後將這些問題拆分為子問題逐步深入討論可能的解決方案(Potential Solutions),最後介紹為什麼 Spark 會使用當前的解決方案(Why)及具體是如何實現的(How)。這種表述方式可以讓讀者“知其然”,並且“知其所以然”,也就是讓讀者既從使用者角度又從設計者角度來理解大數據處理框架中的基本問題、基本設計方法及實現思想。

    (2)強調基本原理的闡述。本書著重介紹 Spark 設計和實現的基本原理,不具體展示代碼實現的細節。這樣做的第一個原因是,其基本原理是對代碼的高層抽像,對大數據框架的用戶、開發者和研究人員來說,原理更重要、更容易理解。第二個原因是,代碼在不斷優化更新,而基本原理比較穩定。本書也可以看作從 Spark 代碼中抽像出概要設計和詳細設計。

    (3)圖文並茂,容易理解。本書將復雜的設計和實現邏輯抽像為圖例,並通過文字描述和實例來方便讀者理解復雜的設計方案和執行過程。對於一些復雜的問題,本書還進行了分類討論,使技術內容更具有邏輯性、更容易被理解。

    (4)具有一定的學術研究價值。本書討論了 Spark 設計與實現過程中存在的一些挑戰性問題及當前解決方案的不足,同時也探討了一些相關的研究工作,並在必要時與Hadoop 進行了對比。這些討論將有助於讀者研究和優化改進大數據處理框架。

    Spark 版本與 API 問題

    本書以 Spark 2.4.3 版和 RDD API 為基礎進行編寫。實際上,從 Spark 2.0 版到未來的Spark 3.0 版,Spark 社區推薦用戶使用 DataSet、DataFrame 等面向結構化數據的高層 API(Structured API)來替代底層的 RDD API,因為這些高層 API 包含更多的數據類型信息(Schema),支持 SQL 操作,並且可以利用經過高度優化的 Spark SQL 引擎來執行。然而,由於以下幾個原因,本書使用 RDD API 來探討 Spark 的設計原理和實現。

    (1)RDD API 更基礎,更適合分析大數據處理框架中的一些基本問題和原理。相比DataSet、DataFrame 數據結構,RDD API 的數據結構更簡單和通用,更適合用來展示一些基本概念和原理,如數據分區方法、每個數據操作的執行過程(生成什麼樣的 RDD API、建立什麼樣的數據依賴關繫),以及執行階段劃分方法、任務劃分方法等。而且,RDD API 包含更多的數據操作類型,可以用來展示更豐富的數據依賴關繫、邏輯處理流程等。

    (2)學習 RDD API 及其執行原理,幫助讀者理解高層 API 和 Spark SQL 執行引擎。由於 Spark SQL 執行引擎采用了許多數據庫、分布式繫統、編譯等領域的優化技術,其將應用程序(使用 DataSet/DataFrame API 編寫)轉化為物理執行計劃的過程比較復雜。本書講解了“RDD API 應用程序-邏輯處理流程-物理執行計劃”的基本轉化過程,幫助讀者進一步學習和理解更復雜的 Spark SQL 轉化過程。讀者可以參閱 Bill Chambers 和 Matei Zaharia 合著的 Spark: The Definitive Guide,學習 DataSet、DataFrame API 的具體使用方法,也可以參閱朱鋒、張韶全、黃明合著的《Spark SQL 內核剖析》,進一步學習 Spark SQL引擎的執行過程和具體實現。

    (3)上層框架(如 MLlib、GraphX)中有很多代碼使用 RDD API,學習原生的 RDD API 有助於在分布式層面理解數據和計算的抽像表達,也有助於理解圖計算應用和機器學習應用中的數據分區(如邊劃分、點劃分),以及計算任務劃分方法(如數據並行等)。

    另外,在未來的 Spark 3.0 版本中還會有一些新的特性,如支持 GPU 調度、SQL 自適大數據處理框架應查詢執行等。如果有機會,我們會在本書的下一版中探討更多關於 Spark SQL 執行引擎的設計原理,以及這些新特性。

    與 SparkInternals 技術文檔的關繫

    有些讀者可能看過我們在 2015 年撰寫並在 GitHub 上公開的 SparkInternals 技術文檔。該文檔介紹了 Spark 1.0 與 Spark 2.0 版本的設計原理和實現,迄今已收到 4000 多顆 stars、1500 次 forks,也被翻譯為英文、日文和泰文,受到很多大數據工程師和研究人員的關注。

    不過,SparkInternals 技術文檔中總結的設計原理不夠完整和深入,而且後幾章中涉及的實現細節也較多(包含一些實現細節代碼)。由於這本書的目的是總結設計原理和實現,所以並沒有使用太多 SparkInternals 技術文檔中的內容,而是按照“問題-解決方案- Spark采用的方案-實現-優缺點”的邏輯重新撰寫了相關章節,隻是使用了 SparkInternals 技術文檔中的部分圖例。當然,如果讀者想要了解一些實現細節和代碼,也可將 SparkInternals技術文檔作為本書的補充資料。

    我們在 GitHub 上建立了一個名為 ApacheSparkBook 的公開項目,將本書設計的示例代碼和高清圖片放到了項目中。

    讀者可以在項目中進行提問,方便我們解答問題或勘誤。由於作者水平和經驗有限,本書的錯漏和不足之處歡迎廣大讀者朋友批評指正,可以將意見提交到 GitHub 項目中或者通過電子郵件聯繫作者。在本書寫作過程中,作者得到了所在單位(中國科學院軟件研究所)諸多老師的關注和支持,在此感謝魏峻、武延軍、王偉等老師提供的科研工作環境。作者的研究工作受到國家自然科學基金(61802377),以及中國科學院青年創新促進會的項目支持。

    感謝參與本書初稿討論和審閱的各位朋友,包括亞馬遜的紀樹平博士、騰訊的朱鋒博士、阿裡巴巴的瀋雯婷、中國科學院軟件研究所的李慧、王棟、葉星肜、康鍇等同學,以及 Databricks 的 Xiao Li 博士及其團隊。同時,也感謝廣大讀者對 GitHub 上 SparkInternals技術文檔的支持和反饋意見。

    電子工業出版社的孫學瑛編輯及其團隊在本書的審校、排版、出版發行過程中付出了巨大努力,在此表示由衷感謝!

    最後,感謝家人及朋友對作者一如既往的支持。


    查看全部↓



    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部