本书分基础技术篇、计算篇和进阶篇,共9章内容,分别为:引言、分布式存储、分布式资源管理与调度、传统HPC并行计算、数据并行编程框架、sql处理框架、执行层优化、sql优化和特定应用的数据处理框架。本书既可共高校相关专业教学使用,也可供大数据领域工程师或者有志于大数据领域工作或研究的科技人员使用。
为培养学生理解大数据、处理大数据以及大数据系统优化的能力,《大数据处理》从思维、编程、优化三个方面系统阐述大数据处理的系统架构、编程、优化等核心技术以及方法。
《大数据处理》内容共9章,包括大数据处理基础、大数据存储基础、大数据管理基础、大数据编程、流计算、图计算、大数据系统管理、大数据系统优化技术、大数据资源链接等内容,技术章节内容均设有导言、习题和参考文献。
《大数据处理》既可供高校相关专业教学使用,也可供大数据领域工程师或者有志于大数据领域工作或研究的科技人员使用。
如今,大数据已经成为国家战略,大数据相关产业的飞速发展,大数据生态的欣欣向荣,带来大数据人才的严重短缺。教育部2016年批准高校设立“数据科学与大数据技术”专业,目前已有近三百所高校获批建设该专业。在此背景下,中国计算机学会大数据专家委员会组建了大数据教材系列丛书编委会,编著大数据系列教材,本书是该系列教材之一。
1.本书的编写思路和内容组织
大数据最早起源于高性能计算领域数据密集型应用,最为典型是JimGray提出的科研“第四范式”的概念。但使得大数据获得广泛关注的是Google公司提出的MapReduce编程模型以及在国际开源社区的Hadoop系统。在Hadoop系统之上构建了系列大数据处理生态系统,并在互联网企业获得广泛应用,Hadoop系统也一度被称为大数据处理引擎,后期一些以内存为中心的MapReduce系统从生态来说也基本与Hadoop系统生态一致。相比于传统高性能计算数据密集型处理编程模型,MapReduce模型的设计初衷就是为了迎合数据的快速增长,实现很好的横向性能扩展。另外,大数据具有产生快速、形态多样的特性,在大数据开源生态中以流计算、图计算系统最为典型。本书编写的初衷就是让读者能够从理解大数据处理的根本诉求出发,强调对于大数据处理应用的编程实践,在此基础上认识大数据处理的发展趋势,从早期大数据处理简单强调性能横向扩展能力到互联网企业大数据处理的降低成本需求以及提升大数据处理服务质量需求,懂得大数据处理架构的典型优化技术。
本书内容围绕互联网领域大数据处理生态系统的典型架构,从“理解大数据”“处理大数据”“系统观建立”三个角度培养学生大数据处理系统能力。对应以上三个方面的系统能力,本书从思维、编程、优化三个部分来编写,即基础技术篇、编程处理篇以及系统与优化篇,每个部分设立3章。
金海,博士,华中科技大学教授。长江学者特聘教授,国家杰出青年基金获得者,国家“万人计划”科技创新领军人才。中国计算机学会会土、常务理事、高性能计算专委会副主任委员、区块链专委会副主任委员。湖北省计算机学会理事长,华中科技大学“服务计算技术与系统教育部重点实验室”主任。国务院特殊津贴专家、国务院学位委员会第六、七届学科评议组成员,第六、七届教育部科学技术委员会信息学部委员、副主任委员。973计划项目首席科学家,“十三五”“云计算与大数据”国家重点研发计划专家组副组长。
第1章 大数据处理基础
1.1 大数据特征
1.1.1 基本特征
1.1.2 数据模型
1.2 大数据存储模式
1.2.1 分布式文件系统
1.2.2 大数据存储形式
1.2.3 大数据存储实例
1.3 大数据处理模式
1.3.1 并行处理
1.3.2 分布式处理
1.3.3 控制流的处理
1.3.4 数据流的处理
1.4 大数据编程模式
1.4.1 批处理
1.4.2 流处理
1.4.3 交互式数据处理
1.4.4 图处理
1.5 大数据处理体系结构
1.5.1 数据中心
1.5.2 数据中心体系结构
1.5.3 数据中心的网络拓扑结构
1.6 本章小结与全书内容组织
参考文献
习题
第2章 大数据存储基础
2.1 分布式存储系统简介
2.1.1 分布式存储系统的基本概念
2.1.2 数据分布
2.1.3 复制与一致性
2.1.4 容错机制
2.1.5 可扩展性
2.2 分布式文件系统
2.2.1 分布式文件系统概述
2.2.2 HDFS的系统架构
2.2.3 数据分布
2.2.4 复制与一致性
2.2.5 容错机制
2.2.6 读写流程
2.3 分布式键值系统
2.3.1 分布式键值系统概述
2.3.2 Dynamo概述
2.3.3 数据分布
2.3.4 复制与一致性
2.3.5 容错机制
2.3.6 负载均衡
2.3.7 读写流程
2.4 新型存储器件驱动的内存系统
2.4.1 内存系统对大数据处理的重要性
2.4.2 非易失性存储器
2.4.3 异构内存系统
2.5 本章小结
参考文献
习题
第3章 大数据管理基础
3.1 大数据管理挑战概述
3.1.1 面向数据管理的大数据特征
3.1.2 大数据的管理需求
3.2 大数据的划分
3.2.1 数据划分方法
3.2.2 数据一致性理论
3.3 大数据的组织管理方式
3.3.1 关系数据库
3.3.2 Key-Value数据库
3.3.3 列族数据库
3.3.4 文档数据库
3.3.5 图数据库
3.4 大数据仓库系统
3.4.1 数据仓库的发展历史
3.4.2 大数据仓库的特性
3.4.3 实例:Hive分析
3.4.4 大数据仓库的未来
3.5 本章小结
参考文献
习题
第4章 大数据编程
4.1 函数式编程
4.1.1 函数式编程的起源
4.1.2 函数式语言家族成员
4.1.3 函数式编程的概念及特点
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 本章小结
参考文献
习题
第5章 大数据流处理
5.1 流处理基础和应用
5.1.1 流处理概述
5.1.2 流处理应用
5.2 分布式流计算
5.2.1 数据封装
5.2.2 建立应用拓扑
5.2.3 指定操作的并行度
5.2.4 指定数据分组与传输方式
5.2.5 本节小节
5.3 开源系统及编程模型
5.3.1 Apache Storm
5.3.2 Spark Stmaming
5.3.3 Apache Flink
5.4 流处理系统机制及优化
5.4.1 流处理调度及优化
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 单机图计算系统
6.4.1 内存图计算系统
6.4.2 核外图计算系统
6.5 图计算硬件加速技术
6.5.1 基于GPU的图计算加速技术
6.5.2 基于MIC的图计算加速技术
6.5.3 基于FPGA的图计算加速技术
6.5.4 基于ASIC的图计算加速技术
6.6 图算法案例
6.6.1 图拓扑属性算法
6.6.2 图数据管理和查询算法
6.7 图计算性能评价
6.8 本章小结
参考文献
习题
第7章 大数据系统管理
7.1 统一资源管理
7.1.1 统一资源管理的设计思想
7.1.2 统一资源管理的基本架构
7.1.3 统一资源管理的工作流程
7.2 大数据系统资源调度
7.2.1 资源调度系统的架构
7.2.2 典型调度算法
7.3 大数据系统的协调技术
7.3.1 协调系统的架构与原理
7.3.2 复制状态机模型
7.3.3 分布式一致性算法
7.4 案例研究
7.4.1 YARN
7.4.2 ZooKeeper
7.5 本章小结
参考文献
习题
第8章 大数据系统优化技术
8.1 存储优化
8.1.1 数据局部性优化
8.1.2 服务可扩展性优化
8.2 调度优化
8.2.1 调度模型
8.2.2 数据本地化
8.2.3 负载均衡
8.2.4 拖后腿问题与推测执行
8.3 运行时优化
8.3.1 中间结果缓存
8.3.2 序列化开销优化
8.4 本章小结
参考文献
习题
第9章 大数据资源链接