第1章 大数据技术概述 1
1.1 大数据的概念 1
1.2 大数据的行业价值 4
1.3 大数据问题的爆发 9
1.4 大数据处理流程 12
1.5 大数据技术 13
1.5.1 基础架构支持 14
1.5.2 数据采集 14
1.5.3 数据存储 15
1.5.4 数据计算 16
1.5.5 展现与交互 18
1.6 练习题 19
参考文献 19
第2章 大数据基础支撑——数据中心及云计算 20
2.1 数据中心概述 20
2.1.1 云计算时代数据中心面临的问题 21
2.1.2 新一代数据中心关键技术 22
2.1.3 业界发展动态 24
2.1.4 小结 25
2.2 云计算简介 25
2.2.1 云计算定义 26
2.2.2 云计算主要特征 27
2.2.3 Web服务、网格和云计算 28
2.2.4 云计算应用分类 29
2.2.5 小结 31
2.3 大数据与云计算的关系 32
2.3.1 大数据是信息技术发展的必然阶段 33
2.3.2 云计算等新兴信息技术正在真正地落地和实施 34
2.3.3 云计算等新兴技术是解决大数据问题的核心关键 34
2.4 云资源调度与管理 35
2.4.1 云资源管理 36
2.4.2 云资源调度策略 38
2.4.3 云计算数据中心负载均衡调度 40
2.5 开源云管理平台OpenStack 44
2.5.1 OpenStack的构成 45
2.5.2 OpenStack各组件之间的关系 46
2.5.3 OpenStack的逻辑架构 47
2.5.4 小结 49
2.6 软件定义网络 49
2.6.1 起源与发展 50
2.6.2 OpenFlow标准和规范 50
2.6.3 OpenFlow的应用 53
2.7 虚拟机与容器 55
2.7.1 VM虚拟化与Container虚拟化 55
2.7.2 Docker 55
2.8 练习题 57
参考文献 57
第3章 云计算先行者——Google的三驾马车 59
3.1 Google的三驾马车 59
3.1.1 GFS——一个可扩展的分布式文件系统 59
3.1.2 MapReduce——一种并行计算的编程模型 64
3.1.3 BigTable——一个分布式数据存储系统 69
3.2 Google新“三驾马车” 77
3.2.1 Caffeine——基于Percolator的搜索索引系统 77
3.2.2 Pregel——高效的分布式图计算的计算框架 80
3.2.3 Dremel——大规模数据的交互式数据分析系统 85
3.3 练习题 89
参考文献 89
第4章 云存储系统 91
4.1 云存储的基本概念 91
4.1.1 云存储结构模型 91
4.1.2 云存储与传统存储系统的区别 94
4.2 云存储关键技术 95
4.2.1 存储虚拟化技术 95
4.2.2 分布式存储技术 97
4.3 云存储系统分类 98
4.3.1 分布式文件存储 99
4.3.2 分布式块存储 105
4.3.3 分布式对象存储 109
4.3.4 统一存储 117
4.4 其他相关技术 124
4.5 练习题 127
参考文献 127
第5章 数据采集系统 129
5.1 Flume 130
5.1.1 Flume架构 130
5.1.2 Flume核心组件 133
5.1.3 Flume环境搭建与部署 134
5.2 Scribe 139
5.2.1 Scribe架构 139
5.2.2 Scribe中的Store 140
5.2.3 Scribe环境搭建与部署 141
5.3 Chukwa 144
5.3.1 Chukwa的设计目标 144
5.3.2 Chukwa架构 145
5.3.3 Chukwa 环境搭建与部署 147
5.4 Kafka 150
5.4.1 Kafka架构 150
5.4.2 Kafka存储 152
5.4.3 Kafka的特点 152
5.4.4 Kafka环境搭建与部署 154
5.5 练习题 155
参考文献 155
第6章 Hadoop与MapReduce 156
6.1 Hadoop平台 156
6.1.1 Hadoop概述 156
6.1.2 Hadoop的发展简史 157
6.1.3 Hadoop的功能和作用 158
6.1.4 HDFS 159
6.1.5 HBase 162
6.2 MapReduce 171
6.2.1 第一代MapReduce(MRv1) 172
6.2.2 MapReduce 2.0——Yarn 180
6.3 Hadoop相关生态系统 184
6.3.1 交互式数据查询分析 184
6.3.2 数据收集、转换工具 187
6.3.3 机器学习工具 188
6.3.4 集群管理与监控 188
6.3.5 其他工具 189
6.4 Hadoop应用案例 191
6.5 练习题 192
参考文献 192
第7章 Spark——大数据统一计算平台 193
7.1 Spark简介 193
7.1.1 Spark 193
7.1.2 BDAS 195
7.2 RDD 197
7.2.1 RDD基本概念 197
7.2.2 RDD示例 199
7.2.3 RDD与分布式共享内存 200
7.3 Spark SQL 201
7.4 MLlib 203
7.5 GraphX 206
7.6 Spark Streaming 206
7.6.1 基本概念 207
7.6.2 编程模型 208
7.7 Spark的安装 210
7.7.1 单机运行Spark 210
7.7.2 使用Spark Shell与Spark交互 213
7.8 Shark、Impala、Hive对比 214
7.9 练习题 216
参考文献 216
第8章 Storm流计算系统 218
8.1 流计算系统 218
8.1.1 流计算系统的特点 218
8.1.2 流计算处理基本流程 219
8.2 Storm流计算框架 220
8.2.1 Storm简介 220
8.2.2 Storm关键术语 221
8.2.3 Storm架构设计 223
8.3 Storm编程实例 225
8.4 Storm应用 228
8.4.1 Storm应用场景 228
8.4.2 Storm应用实例 228
8.5 其他流计算框架 229
8.6 练习题 231
参考文献 231
第9章 SQL、NoSQL与NewSQL 232
9.1 传统SQL数据库 232
9.1.1 关系模型 232
9.1.2 关系型数据库的优点 233
9.1.3 关系型数据库面临的问题 234
9.2 NoSQL 234
9.2.1 NoSQL与大数据 235
9.2.2 NoSQL理论基础 235
9.2.3 分布式模型 238
9.2.4 NoSQL数据库分类 241
9.3 NewSQL 255
9.3.1 系统分类 255
9.3.2 Google Spanner 256
9.3.3 MemSQL 258
9.3.4 VoltDB 260
9.4 练习题 263
参考文献 263
第10章 大数据与数据挖掘 264
10.1 数据挖掘的主要功能和常用算法 264
10.1.1 数据挖掘的主要功能 264
10.1.2 常用算法 265
10.2 大数据时代的数据挖掘 280
10.2.1 传统数据挖掘解决方案 280
10.2.2 分布式数据挖掘解决方案 280
10.3 数据挖掘相关工具 282
10.3.1 Mahout 282
10.3.2 语言工具——Python 288
10.4 数据挖掘与R语言 289
10.4.1 R语言简介 289
10.4.2 R语言在数据挖掘上的应用 290
10.5 练习题 294
参考文献 294
第11章 深度学习 298
11.1 深度学习介绍 299
11.1.1 深度学习的概念 299
11.1.2 深度学习的结构 299
11.1.3 从机器学习到深度学习 301
11.2 深度学习基本方法 302
11.2.1 自动编码器 302
11.2.2 稀疏编码 304
11.3 深度学习模型 305
11.3.1 深度置信网络 306
11.3.2 卷积神经网络 308
11.4 深度学习的训练加速 310
11.4.1 GPU加速 310
11.4.2 数据并行 311
11.4.3 模型并行 312
11.4.4 计算集群 313
11.5 深度学习应用 313
11.5.1 Google 314
11.5.2 百度 314
11.5.3 腾讯Mariana 315
11.6 练习题 316
参考文献 316
第12章 电子商务与社会化网络大数据分析 318
12.1 推荐系统简介 318
12.1.1 推荐系统的评判标准 319
12.1.2 推荐系统的分类 319
12.1.3 在线推荐系统常用算法介绍 320
12.1.4 相关算法知识 323
12.2 计算广告 327
12.2.1 计算广告简介 327
12.2.2 计算广告发展阶段 327
12.2.3 计算广告相关算法 330
12.2.4 计算广告与大数据 332
12.2.5 大数据在计算广告中的应用案例 333
12