内容简介
(1) 概念篇:介绍当前紧密关联的IT领域技术云计算、大数据和物联网。
(2) 大数据存储与管理篇:介绍分布式数据存储的概念、原理和技术,包括HDFS、HBase、NoSQL数据库、云数据库。
(3) 大数据处理与分析篇:介绍MapReduce分布式编程框架、基于内存的分布式计算框架Spark、图计算、流计算、数据可视化。
(4) 大数据应用篇:介绍基于大数据技术的推荐系统。
目录
- 第一篇 大数据基础
- 第1章 大数据概述 2
- 1.1 大数据时代 2
- 1.1.1 第三次信息化浪潮 2
- 1.1.2 信息科技为大数据时代提供技术支撑 3
- 1.1.3 数据产生方式的变革促成大数据时代的来临 5
- 1.1.4 大数据的发展历程 6
- 1.2 大数据的概念 7
- 1.2.1 数据量大 7
- 1.2.2 数据类型繁多 8
- 1.2.3 处理速度快 9
- 1.2.4 价值密度低 9
- 1.3 大数据的影响 9
- 1.3.1 大数据对科学研究的影响 10
- 1.3.2 大数据对思维方式的影响 11
- 1.3.3 大数据对社会发展的影响 11
- 1.3.4 大数据对就业市场的影响 12
- 1.3.5 大数据对人才培养的影响 13
- 1.4 大数据的应用 14
- 1.5 大数据关键技术 14
- 1.6 大数据计算模式 15
- 1.6.1 批处理计算 16
- 1.6.2 流计算 16
- 1.6.3 图计算 16
- 1.6.4 查询分析计算 17
- 1.7 大数据产业 17
- 1.8 大数据与云计算、物联网 18
- 1.8.1 云计算 18
- 1.8.2 物联网 21
- 1.8.3 大数据与云计算、物联网的关系 25
- 1.9 本章小结 26
- 1.10 习题 26
- 第2章 大数据处理架构Hadoop 28
- 2.1 概述 28
- 2.1.1 Hadoop简介 28
- 2.1.2 Hadoop的发展简史 28
- 2.1.3 Hadoop的特性 29
- 2.1.4 Hadoop的应用现状 29
- 2.1.5 Hadoop的版本 30
- 2.2 Hadoop生态系统 30
- 2.2.1 HDFS 31
- 2.2.2 HBase 31
- 2.2.3 MapReduce 31
- 2.2.4 Hive 32
- 2.2.5 Pig 32
- 2.2.6 Mahout 32
- 2.2.7 Zookeeper 32
- 2.2.8 Flume 32
- 2.2.9 Sqoop 32
- 2.2.10 Ambari 33
- 2.3 Hadoop的安装与使用 33
- 2.3.1 创建Hadoop用户 33
- 2.3.2 Java的安装 34
- 2.3.3 SSH登录权限设置 34
- 2.3.4 安装单机Hadoop 34
- 2.3.5 Hadoop伪分布式安装 35
- 2.4 本章小结 37
- 2.5 习题 38
- 实验1 安装Hadoop 38
- 第二篇 大数据存储与管理
- 第3章 分布式文件系统HDFS 42
- 3.1 分布式文件系统 42
- 3.1.1 计算机集群结构 42
- 3.1.2 分布式文件系统的结构 43
- 3.1.3 分布式文件系统的设计需求 44
- 3.2 HDFS简介 44
- 3.3 HDFS的相关概念 45
- 3.3.1 块 45
- 3.3.2 名称节点和数据节点 46
- 3.3.3 第二名称节点 47
- 3.4 HDFS体系结构 48
- 3.4.1 概述 48
- 3.4.2 HDFS命名空间管理 49
- 3.4.3 通信协议 49
- 3.4.4 客户端 50
- 3.4.5 HDFS体系结构的局限性 50
- 3.5 HDFS的存储原理 50
- 3.5.1 数据的冗余存储 50
- 3.5.2 数据存取策略 51
- 3.5.3 数据错误与恢复 52
- 3.6 HDFS的数据读写过程 53
- 3.6.1 读数据的过程 53
- 3.6.2 写数据的过程 54
- 3.7 HDFS编程实践 55
- 3.7.1 HDFS常用命令 55
- 3.7.2 HDFS的Web界面 56
- 3.7.3 HDFS常用Java API及应用实例 57
- 3.8 本章小结 60
- 3.9 习题 61
- 实验2 熟悉常用的HDFS操作 61
- 第4章 分布式数据库HBase 63
- 4.1 概述 63
- 4.1.1 从BigTable说起 63
- 4.1.2 HBase简介 63
- 4.1.3 HBase与传统关系数据库的对比分析 64
- 4.2 HBase访问接口 65
- 4.3 HBase数据模型 66
- 4.3.1 数据模型概述 66
- 4.3.2 数据模型的相关概念 66
- 4.3.3 数据坐标 67
- 4.3.4 概念视图 68
- 4.3.5 物理视图 69
- 4.3.6 面向列的存储 69
- 4.4 HBase的实现原理 71
- 4.4.1 HBase的功能组件 71
- 4.4.2 表和Region 71
- 4.4.3 Region的定位 72
- 4.5 HBase运行机制 74
- 4.5.1 HBase系统架构 74
- 4.5.2 Region服务器的工作原理 76
- 4.5.3 Store的工作原理 77
- 4.5.4 HLog的工作原理 77
- 4.6 HBase编程实践 78
- 4.6.1 HBase常用的Shell命令 78
- 4.6.2 HBase常用的Java API及应用实例 80
- 4.7 本章小结 90
- 4.8 习题 90
- 实验3 熟悉常用的HBase操作 91
- 第5章 NoSQL数据库 94
- 5.1 NoSQL简介 94
- 5.2 NoSQL兴起的原因 95
- 5.2.1 关系数据库无法满足Web 2.0的需求 95
- 5.2.2 关系数据库的关键特性在Web 2.0时代成为“鸡肋” 96
- 5.3 NoSQL与关系数据库的比较 97
- 5.4 NoSQL的四大类型 98
- 5.4.1 键值数据库 99
- 5.4.2 列族数据库 100
- 5.4.3 文档数据库 100
- 5.4.4 图数据库 101
- 5.5 NoSQL的三大基石 101
- 5.5.1 CAP 101
- 5.5.2 BASE 103
- 5.5.3 最终一致性 104
- 5.6 从NoSQL到NewSQL数据库 105
- 5.7 本章小结 107
- 5.8 习题 107
- 第6章 云数据库 108
- 6.1 云数据库概述 108
- 6.1.1 云计算是云数据库兴起的基础 108
- 6.1.2 云数据库的概念 109
- 6.1.3 云数据库的特性 110
- 6.1.4 云数据库是个性化数据存储需求的理想选择 111
- 6.1.5 云数据库与其他数据库的关系 112
- 6.2 云数据库产品 113
- 6.2.1 云数据库厂商概述 113
- 6.2.2 Amazon的云数据库产品 113
- 6.2.3 Google的云数据库产品 114
- 6.2.4 微软的云数据库产品 114
- 6.2.5 其他云数据库产品 115
- 6.3 云数据库系统架构 115
- 6.3.1 UMP系统概述 115
- 6.3.2 UMP系统架构 116
- 6.3.3 UMP系统功能 118
- 6.4 云数据库实践 121
- 6.4.1 阿里云RDS简介 121
- 6.4.2 RDS中的概念 121
- 6.4.3 购买和使用RDS数据库 122
- 6.4.4 将本地数据库迁移到云端RDS数据库 126
- 6.5 本章小结 127
- 6.6 习题 127
- 实验4 熟练使用RDS for MySQL数据库 128
- 第三篇 大数据处理与分析
- 第7章 MapReduce 132
- 7.1 概述 132
- 7.1.1 分布式并行编程 132
- 7.1.2 MapReduce模型简介 133
- 7.1.3 Map和Reduce函数 133
- 7.2 MapReduce的工作流程 134
- 7.2.1 工作流程概述 134
- 7.2.2 MapReduce的各个执行阶段 135
- 7.2.3 Shuffle过程详解 136
- 7.3 实例分析:WordCount 139
- 7.3.1 WordCount的程序任务 139
- 7.3.2 WordCount的设计思路 139
- 7.3.3 WordCount的具体执行过程 140
- 7.3.4 一个WordCount执行过程的实例 141
- 7.4 MapReduce的具体应用 142
- 7.4.1 MapReduce在关系代数运算中的应用 142
- 7.4.2 分组与聚合运算 144
- 7.4.3 矩阵-向量乘法 144
- 7.4.4 矩阵乘法 144
- 7.5 MapReduce编程实践 145
- 7.5.1 任务要求 145
- 7.5.2 编写Map处理逻辑 146
- 7.5.3 编写Reduce处理逻辑 147
- 7.5.4 编写main方法 147
- 7.5.5 编译打包代码以及运行程序 148
- 7.6 本章小结 150
- 7.7 习题 151
- 实验5 MapReduce编程初级实践 152
- 第8章 Hadoop再探讨 155
- 8.1 Hadoop的优化与发展 155
- 8.1.1 Hadoop的局限与不足 155
- 8.1.2 针对Hadoop的改进与提升 156
- 8.2 HDFS2.0的新特性 156
- 8.2.1 HDFS HA 157
- 8.2.2 HDFS联邦 158
- 8.3 新一代资源管理调度框架YARN 159
- 8.3.1 MapReduce1.0的缺陷 159
- 8.3.2 YARN设计思路 160
- 8.3.3 YARN体系结构 161
- 8.3.4 YARN工作流程 163
- 8.3.5 YARN框架与MapReduce1.0框架的对比分析 164
- 8.3.6 YARN的发展目标 165
- 8.4 Hadoop生态系统中具有代表性的功能组件 166
- 8.4.1 Pig 166
- 8.4.2 Tez 167
- 8.4.3 Kafka 169
- 8.5 本章小结 170
- 8.6 习题 170
- 第9章 Spark 172
- 9.1 概述 172
- 9.1.1 Spark简介 172
- 9.1.2 Scala简介 173
- 9.1.3 Spark与Hadoop的对比 174
- 9.2 Spark生态系统 175
- 9.3 Spark运行架构 177
- 9.3.1 基本概念 177
- 9.3.2 架构设计 177
- 9.3.3 Spark运行基本流程 178
- 9.3.4 RDD的设计与运行原理 179
- 9.4 Spark的部署和应用方式 184
- 9.4.1 Spark三种部署方式 184
- 9.4.2 从“Hadoop Storm”架构转向Spark架构 185
- 9.4.3 Hadoop和Spark的统一部署 186
- 9.5 Spark编程实践 186
- 9.5.1 启动Spark Shell 187
- 9.5.2 Spark RDD基本操作 187
- 9.5.3 Spark应用程序 189
- 9.6 本章小结 192
- 9.7 习题 193
- 第10章 流计算 194
- 10.1 流计算概述 194
- 10.1.1 静态数据和流数据 194
- 10.1.2 批量计算和实时计算 195
- 10.1.3 流计算的概念 196
- 10.1.4 流计算与Hadoop 196
- 10.1.5 流计算框架 197
- 10.2 流计算的处理流程 197
- 10.2.1 概述 197
- 10.2.2 数据实时采集 198
- 10.2.3 数据实时计算 198
- 10.2.4 实时查询服务 199
- 10.3 流计算的应用 199
- 10.3.1 应用场景1:实时分析 199
- 10.3.2 应用场景2:实时交通 200
- 10.4 开源流计算框架Storm 200
- 10.4.1 Storm简介 201
- 10.4.2 Storm的特点 201
- 10.4.3 Storm的设计思想 202
- 10.4.4 Storm的框架设计 203
- 10.4.5 Storm实例 204
- 10.5 Spark Streaming 206
- 10.5.1 Spark Streaming设计 206
- 10.5.2 Spark Streaming与Storm的对比 207
- 10.6 本章小结 208
- 10.7 习题 208
- 第11章 图计算 210
- 11.1 图计算简介 210
- 11.1.1 传统图计算解决方案的不足之处 210
- 11.1.2 图计算通用软件 211
- 11.2 Pregel简介 211
- 11.3 Pregel图计算模型 212
- 11.3.1 有向图和顶点 212
- 11.3.2 顶点之间的消息传递 212
- 11.3.3 Pregel的计算过程 213
- 11.3.4 实例 214
- 11.4 Pregel的C API 216
- 11.4.1 消息传递机制 217
- 11.4.2 Combiner 217
- 11.4.3 Aggregator 218
- 11.4.4 拓扑改变 218
- 11.4.5 输入和输出 218
- 11.5 Pregel的体系结构 219
- 11.5.1 Pregel的执行过程 219
- 11.5.2 容错性 220
- 11.5.3 Worker 221
- 11.5.4 Master 221
- 11.5.5 Aggregator 222
- 11.6 Pregel的应用实例 222
- 11.6.1 单源最短路径 222
- 11.6.2 二分匹配 223
- 11.7 Pregel和MapReduce实现PageRank算法的对比 224
- 11.7.1 PageRank算法 224
- 11.7.2 PageRank算法在Pregel中的实现 225
- 11.7.3 PageRank算法在MapReduce中的实现 225
- 11.7.4 PageRank算法在Pregel和MapReduce中实现的比较 228
- 11.8 本章小结 228
- 11.9 习题 228
- 第12章 数据可视化 230
- 12.1 可视化概述 230
- 12.1.1 什么是数据可视化 230
- 12.1.2 可视化的发展历程 230
- 12.1.3 可视化的重要作用 231
- 12.2 可视化工具 233
- 12.2.1 入门级工具 233
- 12.2.2 信息图表工具 234
- 12.2.3 地图工具 235
- 12.2.4 时间线工具 236
- 12.2.5 高级分析工具 236
- 12.3 可视化典型案例 237
- 12.3.1 全球黑客活动 237
- 12.3.2 互联网地图 237
- 12.3.3 编程语言之间的影响力关系图 238
- 12.3.4 百度迁徙 239
- 12.3.5 世界国家健康与财富之间的关系 239
- 12.3.6 3D可视化互联网地图APP 239
- 12.4 本章小结 240
- 12.5 习题 240
- 第四篇 大数据应用
- 第13章 大数据在互联网领域的应用 242
- 13.1 推荐系统概述 242
- 13.1.1 什么是推荐系统 242
- 13.1.2 长尾理论 243
- 13.1.3 推荐方法 243
- 13.1.4 推荐系统模型 244
- 13.1.5 推荐系统的应用 244
- 13.2 协同过滤 245
- 13.2.1 基于用户的协同过滤 245
- 13.2.2 基于物品的协同过滤 246
- 13.2.3 UserCF算法和ItemCF算法的对比 248
- 13.3 协同过滤实践 248
- 13.3.1 实践背景 248
- 13.3.2 数据处理 249
- 13.3.3 计算相似度矩阵 249
- 13.3.4 计算推荐结果 250
- 13.3.5 展示推荐结果 250
- 13.4 本章小结 251
- 13.5 习题 251
- 第14章 大数据在生物医学领域的应用 252
- 14.1 流行病预测 252
- 14.1.1 传统流行病预测机制的不足 252
- 14.1.2 基于大数据的流行病预测 253
- 14.1.3 基于大数据的流行病预测的重要作用 253
- 14.1.4 案例:百度疾病预测 254
- 14.2 智慧医疗 255
- 14.3 生物信息学 256
- 14.4 案例:基于大数据的综合健康服务平台 257
- 14.4.1 平台概述 257
- 14.4.2 平台业务架构 258
- 14.4.3 平台技术架构 258
- 14.4.4 平台关键技术 259
- 14.5 本章小结 260
- 14.6 习题 261
- 第15章 大数据的其他应用 262
- 15.1 大数据在物流领域中的应用 262
- 15.1.1 智能物流的概念 262
- 15.1.2 智能物流的作用 263
- 15.1.3 智能物流的应用 263
- 15.1.4 大数据是智能物流的关键 263
- 15.1.5 中国智能物流骨干网—菜鸟 264
- 15.2 大数据在城市管理中的应用 266
- 15.2.1 智能交通 266
- 15.2.2 环保监测 267
- 15.2.3 城市规划 268
- 15.2.4 安防领域 269
- 15.3 大数据在金融行业中的应用 269
- 15.3.1 高频交易 269
- 15.3.2 市场情绪分析 269
- 15.3.3 信贷风险分析 270
- 15.4 大数据在汽车行业中的应用 271
- 15.5 大数据在零售行业中的应用 272
- 15.5.1 发现关联购买行为 272
- 15.5.2 客户群体细分 273
- 15.5.3 供应链管理 273
- 15.6 大数据在餐饮行业中的应用 274
- 15.6.1 餐饮行业拥抱大数据 274
- 15.6.2 餐饮O2O 274
- 15.7 大数据在电信行业中的应用 276
- 15.8 大数据在能源行业中的应用 276
- 15.9 大数据在体育和娱乐领域中的应用 277
- 15.9.1 训练球队 277
- 15.9.2 投拍影视作品 278
- 15.9.3 预测比赛结果 279
- 15.10 大数据在安全领域中的应用 280
- 15.10.1 大数据与国家安全 280
- 15.10.2 应用大数据技术防御网络攻击 280
- 15.10.3 警察应用大数据工具预防犯罪 281
- 15.11 大数据在政府领域中的应用 282
- 15.12 大数据在日常生活中的应用 283
- 15.13 本章小结 284
- 15.14 习题 284
- 参考文献 285