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