大数据开启了一次重大的时代转型,云计算为大数据提供了技术支撑。本书是大数据与云计算领域的入门教材,内容上尽量做到系统而完整地涵盖大数据及云计算的多个方面,理论与实际相结合。在基础理论方面介绍大数据计算范式、云计算、虚拟化技术与分布式一致性算法;并基于此,围绕大数据的存储、管理、处理和分析需求,讲述大数据处理的开源平台Hadoop生态系统,涉及分布式存储系统与大数据计算框架。分布式存储系统包括分布式文件系统HDFS、键值数据库系统HBase与分布式数据仓库Hive;大数据计算框架包括批处理/微批处理框架、流式处理框架及图计算框架GraphX。此外,本书还介绍大数据计算理论及其应用实例,内容包括高维数据特性、亚线性算法设计理论与方法、亚线性算法应用。
更多科学出版社服务,请扫码获取。
L. H. Yang, M. L. Lee, W. Hsu. Efficient Mining of XML Query Patterns for Caching. Proceedings of the 29th VLDB Conference, pp.69-80, 2003.
目录
第1章 引言 1
1.1 大数据概述 1
1.1.1 大数据的发展 1
1.1.2 大数据的定义及特征 2
1.1.3 大数据系统参考架构的设计与分析 5
1.1.4 数据科学与工程 10
1.1.5 大数据技术面临的挑战 12
1.2 云计算概述 13
1.2.1 云计算的五个基本特征 15
1.2.2 云计算的三种服务模式 16
1.2.3 云计算的四种部署类型 17
小结 19
习题 19
第2章 虚拟化技术 20
2.1 概述 20
2.2 虚拟化原理 21
2.2.1 计算机系统的分层抽象 21
2.2.2 虚拟化机制 23
2.3 系统虚拟化 26
2.3.1 虚拟机分类 31
2.3.2 虚拟机技术分类 36
2.4 存储虚拟化 40
2.4.1 块虚拟化 41
2.4.2 文件系统虚拟化 41
2.4.3 文件虚拟化 42
2.4.4 基于主机的存储虚拟化 42
2.4.5 存储设备/子系统虚拟化 42
2.4.6 基于网络的存储虚拟化 43
2.5 网络虚拟化 43
小结 46
习题 46
第3章 Hadoop及其生态系统 47
3.1 概述 47
3.2 Hadoop 49
3.2.1 Hadoop 1 49
3.2.2 Hadoop 2 50
3.2.3 Hadoop 3 50
3.2.4 Hadoop的安装 53
3.3 YARN——Hadoop的分布式操作系统 58
3.3.1 YARN的体系架构 59
3.3.2 资源管理器功能 61
3.3.3 应用主控器功能 63
3.3.4 节点管理器功能 63
3.3.5 调度策略 64
3.4 Hadoop生态系统 66
3.4.1 数据采集组件 67
3.4.2 数据存储与管理组件 68
3.4.3 大数据批处理系统 69
3.4.4 大数据交互式分析系统 69
3.4.5 图处理系统 70
3.4.6 大数据流处理系统 70
3.4.7 大数据流水线框架 70
3.4.8 其他组件及工具 70
小结 71
习题 71
第4章 分布式一致性算法 72
4.1 概述 72
4.2 两/三阶段提交协议 74
4.2.1 两阶段提交协议 74
4.2.2 三阶段提交协议 77
4.3 Paxos算法 80
4.3.1 提案批准 82
4.3.2 决议获知 87
4.3.3 活性 87
4.3.4 实现 88
4.4 CAP理论 89
4.4.1 ACID与BASE关系 90
4.4.2 CAP与ACID的关系 92
4.4.3 CAP和延迟的联系 93
4.4.4 系统设计中CAP权衡 93
4.5 ZooKeeper 95
4.5.1 ZooKeeper分布式协调系统 95
4.5.2 ZooKeeper实现 100
4.5.3 ZooKeeper安装与使用 103
小结 106
习题 106
第5章 分布式文件系统HDFS 107
5.1 概述 107
5.1.1 分布式文件系统的功能 107
5.1.2 分布式文件系统发展的三个阶段 109
5.1.3 分布式文件系统架构的演化 110
5.2 Hadoop分布式文件系统 111
5.2.1 HDFS的设计目标 111
5.2.2 文件与块 112
5.2.3 HDFS架构 112
5.2.4 HDFS数据副本放置策略 114
5.2.5 HDFS的读写机制 115
5.2.6 HDFS元数据的持久化 117
5.2.7 HDFS容错机制 118
5.2.8 HDFS的使用 120
5.3 HDFS高可用性机制 121
5.4 HDFS联邦 124
小结 126
习题 126
第6章 分布式键值数据库系统HBase 127
6.1 分布式数据库系统概述 127
6.1.1 数据管理发展简史 127
6.1.2 数据库系统扩展概述 128
6.1.3 分片 128
6.1.4 复制 129
6.2 HBase概述 130
6.2.1 HBase发展简史 130
6.2.2 HBase和传统关系数据库系统的区别 130
6.2.3 HBase简介 131
6.2.4 HBase适用场景 131
6.3 HBase体系结构 132
6.3.1 HBase架构图 132
6.3.2 HBase分区组织结构 134
6.3.3 HBase预分区设计 135
6.3.4 HBase寻址机制 136
6.3.5 HBase内部读写机制 137
6.4 HBase一致性 138
6.4.1 强一致性HBase 138
6.4.2 HBase强一致性和HDFS多副本 139
6.5 HBase数据模型 139
6.5.1 HBase数据模型的基本概念 139
6.5.2 HBase逻辑模型 140
6.5.3 HBase物理模型 140
6.5.4 HBase数据库设计 141
6.5.5 HBase数据表特点 142
6.6 HBase的安装和使用 143
6.6.1 软件与环境 143
6.6.2 HBase的安装与配置 143
6.6.3 HBase数据表在Shell
终端下的操作 145
6.6.4 HBase客户端API 145
6.6.5 HBase可用客户端 146
小结 147
习题 147
第7章 数据仓库系统Hive 148
7.1 数据仓库概述 148
7.1.1 数据仓库的定义和特征 148
7.1.2 数据仓库的概念模型 150
7.1.3 数据仓库的逻辑模型 151
7.1.4 数据仓库的物理模型 154
7.1.5 数据仓库设计 156
7.1.6 数据仓库Hive简介 156
7.2 数据仓库Hive的体系结构 157
7.2.1 用户接口及Thrift服务 158
7.2.2 数据仓库Hive引擎
及元数据库 158
7.2.3 数据存储和计算 159
7.2.4 数据仓库Hive的
总体工作流程 161
7.2.5 数据仓库Hive的优劣势及应用场景 162
7.3 Hive的安装 162
7.4 HQL 164
7.4.1 Hive数据定义 165
7.4.2 Hive数据操纵 169
7.4.3 Hive视图 172
7.4.4 Hive索引 173
小结 173
习题 174
第8章 批处理计算框架MapReduce 175
8.1 MapReduce发展简史 175
8.2 MapReduce计算模型 175
8.2.1 MapReduce简介 175
8.2.2 map函数 176
8.2.3 reduce函数 178
8.3 MapReduce内部工作机制 183
8.3.1 MapReduce v1 183
8.3.2 MapReduce v2 186
8.4 MapReduce编程实例 189
小结 191
习题 191
第9章 微批量计算框架Spark 193
9.1 Spark概述 193
9.1.1 Spark生态系统 193
9.1.2 Spark运行框架 195
9.1.3 Spark的安装与运行示例 196
9.2 RDD 197
9.2.1 RDD概述 197
9.2.2 RDD的运行原理 197
9.3 Spark的存储 204
9.3.1 存储层架构 204
9.3.2 混洗数据持久化 204
9.3.3 RDD持久化 205
9.3.4 广播变量持久化 207
9.3.5 TachyonStore 207
9.4 Spark的作业提交与执行 207
9.5 Spark运行模式 208
9.6 Spark的容错原理 210
9.7 RDD编程实例 211
9.8 结构化API 212
小结 214
习题 215
第10章 流式计算框架 216
10.1 流式计算概述 216
10.1.1 概念 216
10.1.2 流式计算原理 217
10.1.3 应用场景 218
10.2 Storm 218
10.2.1 Storm的架构
与工作流程 219
10.2.2 拓扑运行原理 220
10.2.3 实践 222
10.3 Spark Streaming 228
10.3.1 工作原理 228
10.3.2 基本概念 229
10.3.3 持久化、容错和
性能调优 233
10.3.4 程序设计实例 234
10.4 Flink 238
10.4.1 Flink的工作原理 238
10.4.2 Flink中对时间的处理 240
10.4.3 Flink的应用程序接口 241
10.4.4 程序设计实例 242
小结 245
习题 245
第11章 图计算框架 246
11.1 图计算概述 246
11.2 图分割 247
11.3 图计算模型 247
11.3.1 顶点中心计算模型 247
11.3.2 边中心计算模型 252
11.3.3 路径中心计算模型 253
11.3.4 子图中心计算模型 253
11.4 GraphX计算框架 253
11.4.1 GraphX编程原理 254
11.4.2 GraphX编程实例 261
小结 263
习题 263
第12章 大数据计算理论及应用 264
12.1 概述 264
12.2 高维数据 264
12.2.1 认识高维球体 267
12.2.2 高维空间采样 269
12.2.3 大数据归约方法 272
12.3 亚线性计算理论 273
12.3.1 基本概念 273
12.3.2 不等式和界 278
12.4 亚线性算法应用 283
12.4.1 空间亚线性算法 283
12.4.2 时间亚线性算法 288
12.4.3 相似文档归类 290
小结 295
习题 295
参考文献 296