本書分基礎技術(shù)篇、計算篇和進階篇,共9章內(nèi)容,分別為:引言、分布式存儲、分布式資源管理與調(diào)度、傳統(tǒng)HPC并行計算、數(shù)據(jù)并行編程框架、sql處理框架、執(zhí)行層優(yōu)化、sql優(yōu)化和特定應用的數(shù)據(jù)處理框架。本書既可共高校相關(guān)專業(yè)教學使用,也可供大數(shù)據(jù)領域工程師或者有志于大數(shù)據(jù)領域工作或研究的科技人員使用。
為培養(yǎng)學生理解大數(shù)據(jù)、處理大數(shù)據(jù)以及大數(shù)據(jù)系統(tǒng)優(yōu)化的能力,《大數(shù)據(jù)處理》從思維、編程、優(yōu)化三個方面系統(tǒng)闡述大數(shù)據(jù)處理的系統(tǒng)架構(gòu)、編程、優(yōu)化等核心技術(shù)以及方法。
《大數(shù)據(jù)處理》內(nèi)容共9章,包括大數(shù)據(jù)處理基礎、大數(shù)據(jù)存儲基礎、大數(shù)據(jù)管理基礎、大數(shù)據(jù)編程、流計算、圖計算、大數(shù)據(jù)系統(tǒng)管理、大數(shù)據(jù)系統(tǒng)優(yōu)化技術(shù)、大數(shù)據(jù)資源鏈接等內(nèi)容,技術(shù)章節(jié)內(nèi)容均設有導言、習題和參考文獻。
《大數(shù)據(jù)處理》既可供高校相關(guān)專業(yè)教學使用,也可供大數(shù)據(jù)領域工程師或者有志于大數(shù)據(jù)領域工作或研究的科技人員使用。
如今,大數(shù)據(jù)已經(jīng)成為國家戰(zhàn)略,大數(shù)據(jù)相關(guān)產(chǎn)業(yè)的飛速發(fā)展,大數(shù)據(jù)生態(tài)的欣欣向榮,帶來大數(shù)據(jù)人才的嚴重短缺。教育部2016年批準高校設立“數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)”專業(yè),目前已有近三百所高校獲批建設該專業(yè)。在此背景下,中國計算機學會大數(shù)據(jù)專家委員會組建了大數(shù)據(jù)教材系列叢書編委會,編著大數(shù)據(jù)系列教材,本書是該系列教材之一。
1.本書的編寫思路和內(nèi)容組織
大數(shù)據(jù)最早起源于高性能計算領域數(shù)據(jù)密集型應用,最為典型是JimGray提出的科研“第四范式”的概念。但使得大數(shù)據(jù)獲得廣泛關(guān)注的是Google公司提出的MapReduce編程模型以及在國際開源社區(qū)的Hadoop系統(tǒng)。在Hadoop系統(tǒng)之上構(gòu)建了系列大數(shù)據(jù)處理生態(tài)系統(tǒng),并在互聯(lián)網(wǎng)企業(yè)獲得廣泛應用,Hadoop系統(tǒng)也一度被稱為大數(shù)據(jù)處理引擎,后期一些以內(nèi)存為中心的MapReduce系統(tǒng)從生態(tài)來說也基本與Hadoop系統(tǒng)生態(tài)一致。相比于傳統(tǒng)高性能計算數(shù)據(jù)密集型處理編程模型,MapReduce模型的設計初衷就是為了迎合數(shù)據(jù)的快速增長,實現(xiàn)很好的橫向性能擴展。另外,大數(shù)據(jù)具有產(chǎn)生快速、形態(tài)多樣的特性,在大數(shù)據(jù)開源生態(tài)中以流計算、圖計算系統(tǒng)最為典型。本書編寫的初衷就是讓讀者能夠從理解大數(shù)據(jù)處理的根本訴求出發(fā),強調(diào)對于大數(shù)據(jù)處理應用的編程實踐,在此基礎上認識大數(shù)據(jù)處理的發(fā)展趨勢,從早期大數(shù)據(jù)處理簡單強調(diào)性能橫向擴展能力到互聯(lián)網(wǎng)企業(yè)大數(shù)據(jù)處理的降低成本需求以及提升大數(shù)據(jù)處理服務質(zhì)量需求,懂得大數(shù)據(jù)處理架構(gòu)的典型優(yōu)化技術(shù)。
本書內(nèi)容圍繞互聯(lián)網(wǎng)領域大數(shù)據(jù)處理生態(tài)系統(tǒng)的典型架構(gòu),從“理解大數(shù)據(jù)”“處理大數(shù)據(jù)”“系統(tǒng)觀建立”三個角度培養(yǎng)學生大數(shù)據(jù)處理系統(tǒng)能力。對應以上三個方面的系統(tǒng)能力,本書從思維、編程、優(yōu)化三個部分來編寫,即基礎技術(shù)篇、編程處理篇以及系統(tǒng)與優(yōu)化篇,每個部分設立3章。
金海,博士,華中科技大學教授。長江學者特聘教授,國家杰出青年基金獲得者,國家“萬人計劃”科技創(chuàng)新領軍人才。中國計算機學會會土、常務理事、高性能計算專委會副主任委員、區(qū)塊鏈專委會副主任委員。湖北省計算機學會理事長,華中科技大學“服務計算技術(shù)與系統(tǒng)教育部重點實驗室”主任。國務院特殊津貼專家、國務院學位委員會第六、七屆學科評議組成員,第六、七屆教育部科學技術(shù)委員會信息學部委員、副主任委員。973計劃項目首席科學家,“十三五”“云計算與大數(shù)據(jù)”國家重點研發(fā)計劃專家組副組長。
第1章 大數(shù)據(jù)處理基礎
1.1 大數(shù)據(jù)特征
1.1.1 基本特征
1.1.2 數(shù)據(jù)模型
1.2 大數(shù)據(jù)存儲模式
1.2.1 分布式文件系統(tǒng)
1.2.2 大數(shù)據(jù)存儲形式
1.2.3 大數(shù)據(jù)存儲實例
1.3 大數(shù)據(jù)處理模式
1.3.1 并行處理
1.3.2 分布式處理
1.3.3 控制流的處理
1.3.4 數(shù)據(jù)流的處理
1.4 大數(shù)據(jù)編程模式
1.4.1 批處理
1.4.2 流處理
1.4.3 交互式數(shù)據(jù)處理
1.4.4 圖處理
1.5 大數(shù)據(jù)處理體系結(jié)構(gòu)
1.5.1 數(shù)據(jù)中心
1.5.2 數(shù)據(jù)中心體系結(jié)構(gòu)
1.5.3 數(shù)據(jù)中心的網(wǎng)絡拓撲結(jié)構(gòu)
1.6 本章小結(jié)與全書內(nèi)容組織
參考文獻
習題
第2章 大數(shù)據(jù)存儲基礎
2.1 分布式存儲系統(tǒng)簡介
2.1.1 分布式存儲系統(tǒng)的基本概念
2.1.2 數(shù)據(jù)分布
2.1.3 復制與一致性
2.1.4 容錯機制
2.1.5 可擴展性
2.2 分布式文件系統(tǒng)
2.2.1 分布式文件系統(tǒng)概述
2.2.2 HDFS的系統(tǒng)架構(gòu)
2.2.3 數(shù)據(jù)分布
2.2.4 復制與一致性
2.2.5 容錯機制
2.2.6 讀寫流程
2.3 分布式鍵值系統(tǒng)
2.3.1 分布式鍵值系統(tǒng)概述
2.3.2 Dynamo概述
2.3.3 數(shù)據(jù)分布
2.3.4 復制與一致性
2.3.5 容錯機制
2.3.6 負載均衡
2.3.7 讀寫流程
2.4 新型存儲器件驅(qū)動的內(nèi)存系統(tǒng)
2.4.1 內(nèi)存系統(tǒng)對大數(shù)據(jù)處理的重要性
2.4.2 非易失性存儲器
2.4.3 異構(gòu)內(nèi)存系統(tǒng)
2.5 本章小結(jié)
參考文獻
習題
第3章 大數(shù)據(jù)管理基礎
3.1 大數(shù)據(jù)管理挑戰(zhàn)概述
3.1.1 面向數(shù)據(jù)管理的大數(shù)據(jù)特征
3.1.2 大數(shù)據(jù)的管理需求
3.2 大數(shù)據(jù)的劃分
3.2.1 數(shù)據(jù)劃分方法
3.2.2 數(shù)據(jù)一致性理論
3.3 大數(shù)據(jù)的組織管理方式
3.3.1 關(guān)系數(shù)據(jù)庫
3.3.2 Key-Value數(shù)據(jù)庫
3.3.3 列族數(shù)據(jù)庫
3.3.4 文檔數(shù)據(jù)庫
3.3.5 圖數(shù)據(jù)庫
3.4 大數(shù)據(jù)倉庫系統(tǒng)
3.4.1 數(shù)據(jù)倉庫的發(fā)展歷史
3.4.2 大數(shù)據(jù)倉庫的特性
3.4.3 實例:Hive分析
3.4.4 大數(shù)據(jù)倉庫的未來
3.5 本章小結(jié)
參考文獻
習題
第4章 大數(shù)據(jù)編程
4.1 函數(shù)式編程
4.1.1 函數(shù)式編程的起源
4.1.2 函數(shù)式語言家族成員
4.1.3 函數(shù)式編程的概念及特點
4.2 MapReduce編程
4.2.1 MapReduce的起源
4.2.2 MapReduce的工作原理
4.2.3 MapReduce的主要特點
4.3 MapReduce案例研究
4.3.1 WordCount程序分析
4.3.2 PageRank程序分析
4.4 本章小結(jié)
參考文獻
習題
第5章 大數(shù)據(jù)流處理
5.1 流處理基礎和應用
5.1.1 流處理概述
5.1.2 流處理應用
5.2 分布式流計算
5.2.1 數(shù)據(jù)封裝
5.2.2 建立應用拓撲
5.2.3 指定操作的并行度
5.2.4 指定數(shù)據(jù)分組與傳輸方式
5.2.5 本節(jié)小節(jié)
5.3 開源系統(tǒng)及編程模型
5.3.1 Apache Storm
5.3.2 Spark Stmaming
5.3.3 Apache Flink
5.4 流處理系統(tǒng)機制及優(yōu)化
5.4.1 流處理調(diào)度及優(yōu)化
5.4.2 流處理一致性語義
5.4.3 流處理容錯
參考文獻
習題
第6章 圖計算
6.1 圖計算背景
6.1.1 圖計算簡介
6.1.2 圖計算特點
6.1.3 圖計算實例
6.2 圖計算并行編程模型
6.2.1 以點為中心的編程模型
6.2.2 以邊為中心的編程模型
6.2.3 以路徑為中心的編程模型
6.2.4 以子圖為中心的編程模型
6.3 圖劃分和通信
6.3.1 圖劃分策略
6.3.2 消息推送機制
6.4 單機圖計算系統(tǒng)
6.4.1 內(nèi)存圖計算系統(tǒng)
6.4.2 核外圖計算系統(tǒng)
6.5 圖計算硬件加速技術(shù)
6.5.1 基于GPU的圖計算加速技術(shù)
6.5.2 基于MIC的圖計算加速技術(shù)
6.5.3 基于FPGA的圖計算加速技術(shù)
6.5.4 基于ASIC的圖計算加速技術(shù)
6.6 圖算法案例
6.6.1 圖拓撲屬性算法
6.6.2 圖數(shù)據(jù)管理和查詢算法
6.7 圖計算性能評價
6.8 本章小結(jié)
參考文獻
習題
第7章 大數(shù)據(jù)系統(tǒng)管理
7.1 統(tǒng)一資源管理
7.1.1 統(tǒng)一資源管理的設計思想
7.1.2 統(tǒng)一資源管理的基本架構(gòu)
7.1.3 統(tǒng)一資源管理的工作流程
7.2 大數(shù)據(jù)系統(tǒng)資源調(diào)度
7.2.1 資源調(diào)度系統(tǒng)的架構(gòu)
7.2.2 典型調(diào)度算法
7.3 大數(shù)據(jù)系統(tǒng)的協(xié)調(diào)技術(shù)
7.3.1 協(xié)調(diào)系統(tǒng)的架構(gòu)與原理
7.3.2 復制狀態(tài)機模型
7.3.3 分布式一致性算法
7.4 案例研究
7.4.1 YARN
7.4.2 ZooKeeper
7.5 本章小結(jié)
參考文獻
習題
第8章 大數(shù)據(jù)系統(tǒng)優(yōu)化技術(shù)
8.1 存儲優(yōu)化
8.1.1 數(shù)據(jù)局部性優(yōu)化
8.1.2 服務可擴展性優(yōu)化
8.2 調(diào)度優(yōu)化
8.2.1 調(diào)度模型
8.2.2 數(shù)據(jù)本地化
8.2.3 負載均衡
8.2.4 拖后腿問題與推測執(zhí)行
8.3 運行時優(yōu)化
8.3.1 中間結(jié)果緩存
8.3.2 序列化開銷優(yōu)化
8.4 本章小結(jié)
參考文獻
習題
第9章 大數(shù)據(jù)資源鏈接