林子雨编著《大数据技术原理与应用(第3版)》教材目录

访问第3版教材官网

林子雨编著《大数据技术原理与应用(第3版)》教材目录

第一篇 大数据基础

第1章 大数据概述 …………………………….. 2

1.1 大数据时代 ………………………………………… 2

1.1.1 第三次信息化浪潮 ……………………….. 2

1.1.2 信息科技为大数据时代提供技术支撑 …………………………………………….. 3

1.1.3 数据产生方式的变革促成大数据时代的来临 ………………………………….. 5

1.1.4 大数据的发展历程 ……………………….. 6

1.2 大数据的概念 …………………………………….. 8

1.2.1 数据量大 ……………………………………… 8

1.2.2 数据类型繁多 ………………………………. 9

1.2.3 处理速度快 ………………………………… 10

1.2.4 价值密度低 ………………………………… 10

1.3 大数据的影响 …………………………………… 10

1.3.1 大数据对科学研究的影响 …………… 10

1.3.2 大数据对思维方式的影响 …………… 12

1.3.3 大数据对社会发展的影响 …………… 12

1.3.4 大数据对就业市场的影响 …………… 13

1.3.5 大数据对人才培养的影响 …………… 14

1.4 大数据的应用 …………………………………… 15

1.5 大数据关键技术 ……………………………….. 16

1.6 大数据计算模式 ……………………………….. 17

1.6.1 批处理计算 ………………………………… 17

1.6.2 流计算 ……………………………………….. 17

1.6.3 图计算 ……………………………………….. 18

1.6.4 查询分析计算 …………………………….. 18

1.7 大数据产业 ………………………………………. 18

1.8 大数据与云计算、物联网 …………………. 19

1.8.1 云计算 ……………………………………….. 19

1.8.2 物联网 ……………………………………….. 23

1.8.3 大数据与云计算、物联网的 关系 …………………………………………… 27

1.9 本章小结 ………………………………………….. 28

1.10 习题 ……………………………………………….. 28

第2章 大数据处理架构Hadoop ….. 29

2.1 概述 …………………………………………………. 29

2.1.1 Hadoop简介 ………………………………. 29

2.1.2 Hadoop的发展简史 ……………………. 29

2.1.3 Hadoop的特性 …………………………… 30

2.1.4 Hadoop的应用现状 ……………………. 30

2.1.5 Hadoop的版本 …………………………… 31

2.2 Hadoop生态系统 ………………………………. 31

2.2.1 HDFS …………………………………………. 32

2.2.2 HBase ………………………………………… 32

2.2.3 MapReduce …………………………………. 32

2.2.4 Hive …………………………………………… 33

2.2.5 Pig …………………………………………….. 33

2.2.6 Mahout ………………………………………. 33

2.2.7 ZooKeeper ………………………………….. 33

2.2.8 Flume …………………………………………. 33

2.2.9 Sqoop …………………………………………. 33

2.2.10 Ambari ……………………………………… 34

2.3 Hadoop的安装与使用 ……………………….. 34

2.3.1 创建Hadoop用户 ………………………. 34

2.3.2 更新apt和安装Vim编辑器 ……….. 35

2.3.3 安装SSH和配置SSH无密码 登录 …………………………………………… 35

2.3.4 安装Java环境 ……………………………. 36

2.3.5 安装单机Hadoop ……………………….. 36

2.3.6 Hadoop伪分布式安装 ………………… 37

2.4 本章小结 ………………………………………….. 40

2.5 习题 …………………………………………………. 40

实验1 熟悉常用的Linux操作和Hadoop 操作 ……………………………………………. 40

第二篇 大数据存储与管理

第3章 分布式文件系统HDFS……… 46

3.1 分布式文件系统 ……………………………….. 46

3.1.1 计算机集群结构 …………………………. 46

3.1.2 分布式文件系统的结构 ………………. 47

3.1.3 分布式文件系统的设计需求 ……….. 48

3.2 HDFS简介 ……………………………………….. 48

3.3 HDFS的相关概念 …………………………….. 49

3.3.1 块 ……………………………………………… 50

3.3.2 名称节点和数据节点 ………………….. 50

3.3.3 第二名称节点 …………………………….. 51

3.4 HDFS体系结构 ………………………………… 52

3.4.1 概述 ………………………………………….. 52

3.4.2 HDFS命名空间管理 ………………….. 53

3.4.3 通信协议 …………………………………… 53

3.4.4 客户端 ………………………………………. 54

3.4.5 HDFS体系结构的局限性 ……………. 54

3.5 HDFS的存储原理 …………………………….. 54

3.5.1 数据的冗余存储 …………………………. 54

3.5.2 数据存取策略 …………………………….. 55

3.5.3 数据错误与恢复 …………………………. 56

3.6 HDFS的数据读写过程 ……………………… 57

3.6.1 读数据的过程 …………………………….. 57

3.6.2 写数据的过程 …………………………….. 58

3.7 HDFS编程实践 ………………………………… 59

3.7.1 HDFS常用命令 …………………………. 59

3.7.2 HDFS的Web页面 …………………….. 60

3.7.3 HDFS常用Java API及应用实例 … 61

3.8 本章小结 ………………………………………….. 64

3.9 习题 …………………………………………………. 65

实验2 熟悉常用的HDFS操作 ……………….. 65

第4章 分布式数据库HBase ………… 67

4.1 概述 …………………………………………………. 67

4.1.1 从BigTable说起 ………………………… 67

4.1.2 HBase简介 ………………………………… 67

4.1.3 HBase与传统关系数据库的对比 分析 …………………………………………… 68

4.2 HBase访问接口………………………………… 69

4.3 HBase数据模型………………………………… 70

4.3.1 数据模型概述 …………………………….. 70

4.3.2 数据模型的相关概念 ………………….. 70

4.3.3 数据坐标 ……………………………………. 71

4.3.4 概念视图 ……………………………………. 72

4.3.5 物理视图 ……………………………………. 73

4.3.6 面向列的存储 …………………………….. 73

4.4 HBase的实现原理 …………………………….. 75

4.4.1 HBase的功能组件 ……………………… 75

4.4.2 表和Region ……………………………….. 76

4.4.3 Region的定位 ……………………………. 76

4.5 HBase运行机制………………………………… 78

4.5.1 HBase系统架构 …………………………. 78

4.5.2 Region服务器的工作原理 ………….. 80

4.5.3 Store的工作原理 ……………………….. 81

4.5.4 HLog的工作原理……………………….. 81

4.6 HBase编程实践………………………………… 82

4.6.1 HBase常用的Shell命令 …………….. 82

4.6.2 HBase常用的Java API及应用实例………………………………………………….. 84

4.7 本章小结 ………………………………………….. 95

4.8 习题 …………………………………………………. 95

实验3 熟悉常用的HBase操作 ……………….. 96

第5章 NoSQL数据库 …………………….. 98

5.1 NoSQL简介 ……………………………………… 98

5.2 NoSQL兴起的原因 …………………………… 99

5.2.1 关系数据库无法满足Web 2.0的 需求 …………………………………………… 99

5.2.2 关系数据库的关键特性在Web 2.0 时代成为“鸡肋” ……………………. 100

5.3 NoSQL与关系数据库的比较 …………… 101

5.4 NoSQL的四大类型 …………………………. 102

5.4.1 键值数据库 ………………………………. 103

5.4.2 列族数据库 ………………………………. 104

5.4.3 文档数据库 ………………………………. 104

5.4.4 图数据库 ………………………………….. 105

5.5 NoSQL的三大基石 …………………………. 105

5.5.1 CAP …………………………………………. 105

5.5.2 BASE ………………………………………. 107

5.5.3 最终一致性 ………………………………. 108

5.6 从NoSQL到NewSQL数据库 …………. 109

5.7 本章小结 ………………………………………… 111

5.8 习题 ……………………………………………….. 111

实验4 NoSQL和关系数据库的操作比较 . 111

第6章 云数据库 ……………………………… 115

6.1 云数据库概述 …………………………………. 115

6.1.1 云计算是云数据库兴起的基础 ….. 115

6.1.2 云数据库的概念 ……………………….. 116

6.1.3 云数据库的特性 ……………………….. 117

6.1.4 云数据库是个性化数据存储需求 的理想选择 ………………………………. 118

6.1.5 云数据库与其他数据库的关系 ….. 119

6.2 云数据库产品 …………………………………. 120

6.2.1 云数据库厂商概述 ……………………. 120

6.2.2 Amazon的云数据库产品 …………… 120

6.2.3 Google的云数据库产品 ……………. 121

6.2.4 Microsoft的云数据库产品 ………… 121

6.2.5 其他云数据库产品 ……………………. 122

6.3 云数据库系统架构 ………………………….. 123

6.3.1 UMP系统概述 …………………………. 123

6.3.2 UMP系统架构 …………………………. 123

6.3.3 UMP系统功能 …………………………. 126

6.4 本章小结 ………………………………………… 128

6.5 习题 ……………………………………………….. 128

第三篇 大数据处理与分析

第7章 MapReduce ………………………… 131

7.1 概述 ……………………………………………….. 131

7.1.1 分布式并行编程 ……………………….. 131

7.1.2 MapReduce模型简介 ………………… 132

7.1.3 Map和Reduce函数 ………………….. 132

7.2 MapReduce的工作流程 …………………… 133

7.2.1 工作流程概述 …………………………… 133

7.2.2 MapReduce的各个执行阶段 ……… 134

7.2.3 Shuffle过程详解 ………………………. 135

7.3 实例分析:WordCount …………………….. 138

7.3.1 WordCount的程序任务 …………….. 138

7.3.2 WordCount的设计思路 …………….. 139

7.3.3 WordCount的具体执行过程 ……… 139

7.3.4 一个WordCount执行过程的 实例 …………………………………………. 140

7.4 MapReduce的具体应用 …………………… 141

7.4.1 MapReduce在关系代数运算中的 应用 …………………………………………. 142

7.4.2 分组与聚合运算 ……………………….. 143

7.4.3 矩阵-向量乘法 …………………………. 143

7.4.4 矩阵乘法 ………………………………….. 144

7.5 MapReduce编程实践 ………………………. 144

7.5.1 任务要求 ………………………………….. 144

7.5.2 编写Map处理逻辑 …………………… 145

7.5.3 编写Reduce处理逻辑 ………………. 146

7.5.4 编写main方法 …………………………. 147

7.5.5 编译打包代码以及运行程序 ……… 148

7.6 本章小结 ………………………………………… 150

7.7 习题 ……………………………………………….. 150

实验5 MapReduce初级编程实践 ………….. 151

第8章 Hadoop再探讨 ………………….. 155

8.1 Hadoop的优化与发展 ……………………… 155

8.1.1 Hadoop的局限与不足 ………………. 155

8.1.2 针对Hadoop的改进与提升……….. 156

8.2 HDFS 2.0的新特性 …………………………. 156

8.2.1 HDFS HA …………………………………. 157

8.2.2 HDFS联邦 ……………………………….. 158

8.3 新一代资源管理调度框架YARN ……… 159

8.3.1 MapReduce 1.0的缺陷 ………………. 160

8.3.2 YARN设计思路 ……………………….. 160

8.3.3 YARN体系结构 ……………………….. 161

8.3.4 YARN工作流程 ……………………….. 163

8.3.5 YARN框架与MapReduce 1.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章 数据仓库Hive ……………………. 172

9.1 概述 ……………………………………………….. 172

9.1.1 数据仓库概念 …………………………… 172

9.1.2 传统数据仓库面临的挑战 …………. 173

9.1.3 Hive简介 …………………………………. 173

9.1.4 Hive与Hadoop生态系统中其他组件的关系………………………………….. 174

9.1.5 Hive与传统数据库的对比分析 …. 174

9.1.6 Hive在企业中的部署和应用 …….. 175

9.2 Hive系统架构 ………………………………… 176

9.3 Hive工作原理 ………………………………… 177

9.3.1 SQL语句转换成MapReduce作业的基本原理 ………………………………. 177

9.3.2 SQL查询转换成MapReduce作业的过程 …………………………………….. 179

9.4 Hive HA基本原理 ………………………….. 180

9.5 Impala …………………………………………….. 181

9.5.1 Impala简介 ……………………………… 181

9.5.2 Impala系统架构……………………….. 181

9.5.3 Impala查询执行过程 ………………… 182

9.5.4 Impala与Hive的比较 ………………. 183

9.6 Hive编程实践 ………………………………… 184

9.6.1 Hive的数据类型 ………………………. 184

9.6.2 Hive基本操作 ………………………….. 185

9.6.3 Hive应用实例:WordCount………. 188

9.6.4 Hive编程的优势 ………………………. 188

9.7 本章小结 ………………………………………… 189

9.8 习题 ……………………………………………….. 189

实验6 熟悉Hive的基本操作 ………………… 189

第10章 Spark ………………………………….. 192

10.1 概述 ……………………………………………… 192

10.1.1 Spark简介 ……………………………… 192

10.1.2 Scala简介 ………………………………. 193

10.1.3 Spark与Hadoop的对比 ………….. 193

10.2 Spark生态系统 ……………………………… 195

10.3 Spark运行架构 ……………………………… 197

10.3.1 基本概念 ………………………………… 197

10.3.2 架构设计 ………………………………… 197

10.3.3 Spark运行基本流程 ………………… 198

10.3.4 RDD的设计与运行原理 ………….. 199

10.4 Spark的部署和应用方式 ……………….. 208

10.4.1 Spark的部署方式……………………. 208

10.4.2 从“Hadoop+Storm”架构转向 Spark架构 ……………………………… 209

10.4.3 Hadoop和Spark的统一部署 …… 210

10.5 Spark编程实践 ……………………………… 210

10.5.1 启动Spark Shell ……………………… 211

10.5.2 Spark RDD基本操作 ………………. 211

10.5.3 Spark应用程序……………………….. 213

10.6 本章小结 ………………………………………. 217

10.7 习题 ……………………………………………… 217

实验7 Spark初级编程实践 …………………… 217

第11章 流计算 ………………………………… 220

11.1 流计算概述 …………………………………… 220

11.1.1 静态数据和流数据 ………………….. 220

11.1.2 批量计算和实时计算 ………………. 221

11.1.3 流计算的概念 …………………………. 221

11.1.4 流计算与Hadoop ……………………. 222

11.1.5 流计算框架 …………………………….. 222

11.2 流计算的处理流程 ………………………… 223

11.2.1 概述 ……………………………………….. 223

11.2.2 数据实时采集 …………………………. 223

11.2.3 数据实时计算 …………………………. 224

11.2.4 实时查询服务 …………………………. 224

11.3 流计算的应用 ……………………………….. 225

11.3.1 应用场景1:实时分析 ……………. 225

11.3.2 应用场景2:实时交通 ……………. 226

11.4 开源流计算框架Storm …………………… 226

11.4.1 Storm简介 ……………………………… 226

11.4.2 Storm的特点 ………………………….. 227

11.4.3 Storm的设计思想 …………………… 227

11.4.4 Storm的框架设计 …………………… 229

11.4.5 Storm实例 ……………………………… 230

11.5 Spark Streaming ……………………………… 232

11.5.1 Spark Streaming设计 ………………. 232

11.5.2 Spark Streaming与Storm的 对比 ……………………………………….. 233

11.6 本章小结 ………………………………………. 233

11.7 习题 ……………………………………………… 234

第12章 Flink ……………………………………. 236

12.1 Flink简介 ……………………………………… 236

12.2 为什么选择Flink …………………………… 237

12.2.1 传统数据处理架构 ………………….. 237

12.2.2 大数据Lambda架构 ……………….. 237

12.2.3 流处理架构 …………………………….. 238

12.2.4 Flink是理想的流计算框架 ………. 239

12.2.5 Flink的优势 …………………………… 239

12.3 Flink应用场景 ………………………………. 240

12.3.1 事件驱动型应用 ……………………… 240

12.3.2 数据分析应用 …………………………. 241

12.3.3 数据流水线应用 ……………………… 242

12.4 Flink技术栈 ………………………………….. 243

12.5 Flink体系架构 ………………………………. 244

12.6 Flink编程模型 ………………………………. 244

12.7 Flink编程实践 ………………………………. 245

12.7.1 安装Flink ………………………………. 245

12.7.2 编程实现WordCount程序 ………. 247

12.8 本章小结 ………………………………………. 250

12.9 习题 ……………………………………………… 251

实验8 Flink初级编程实践 ……………………. 251

第13章 图计算 ………………………………… 253

13.1 图计算简介 …………………………………… 253

13.1.1 传统图计算解决方案的不足 之处 ……………………………………….. 253

13.1.2 通用图计算软件 ……………………… 254

13.2 Pregel简介 ……………………………………. 255

13.3 Pregel图计算模型 …………………………. 255

13.3.1 有向图和顶点 …………………………. 255

13.3.2 顶点之间的消息传递 ………………. 255

13.3.3 Pregel的计算过程 …………………… 256

13.3.4 Pregel计算过程的实例 ……………. 257

13.4 Pregel的C++ API ………………………….. 259

13.4.1 消息传递机制 …………………………. 260

13.4.2 Combiner ………………………………… 260

13.4.3 Aggregator ………………………………. 261

13.4.4 拓扑改变 ………………………………… 261

13.4.5 输入和输出 …………………………….. 261

13.5 Pregel的体系结构 …………………………. 262

13.5.1 Pregel的执行过程 …………………… 262

13.5.2 容错性 ……………………………………. 263

13.5.3 Worker ……………………………………. 264

13.5.4 Master …………………………………….. 264

13.5.5 Aggregator ………………………………. 265

13.6 Pregel的应用实例 …………………………. 265

13.6.1 单源最短路径 …………………………. 265

13.6.2 二分匹配 ………………………………… 266

13.7 Pregel和MapReduce实现PageRank 算法的对比 …………………………………… 267

13.7.1 PageRank算法 ………………………… 267

13.7.2 PageRank算法在Pregel中的 实现 ……………………………………….. 268

13.7.3 PageRank算法在MapReduce 中的实现 ………………………………… 269

13.7.4 PageRank算法在Pregel和 MapReduce中实现的比较 ……….. 271

13.8 本章小结 ………………………………………. 271

13.9 习题 ……………………………………………… 272

第14章 数据可视化 ……………………….. 273

14.1 可视化概述 …………………………………… 273

14.1.1 什么是数据可视化 ………………….. 273

14.1.2 可视化的发展历程 ………………….. 273

14.1.3 可视化的重要作用 ………………….. 275

14.2 可视化工具 …………………………………… 277

14.2.1 入门级工具 …………………………….. 277

14.2.2 信息图表工具 …………………………. 277

14.2.3 地图工具………………………………… 278

14.2.4 时间线工具 …………………………….. 279

14.2.5 高级分析工具 …………………………. 280

14.3 可视化典型案例 ……………………………. 280

14.3.1 全球黑客活动 …………………………. 280

14.3.2 互联网地图 …………………………….. 280

14.3.3 编程语言之间的影响力关系 ……. 281

14.3.4 世界国家健康与财富之间的 关系 …………………………………………. 282

14.3.5 3D可视化互联网地图App ……… 283

14.4 本章小结 ………………………………………. 283

14.5 习题 ……………………………………………… 284

第四篇 大数据应用

第15章 大数据在互联网领域的 应用 ……………………………………. 286

15.1 推荐系统概述 ……………………………….. 286

15.1.1 什么是推荐系统 ……………………… 286

15.1.2 长尾理论………………………………… 287

15.1.3 推荐方法………………………………… 287

15.1.4 推荐系统模型 …………………………. 288

15.1.5 推荐系统的应用 ……………………… 288

15.2 协同过滤 ………………………………………. 289

15.2.1 基于用户的协同过滤 ………………. 289

15.2.2 基于物品的协同过滤 ………………. 291

15.2.3 UserCF算法和ItemCF算法的 对比 ………………………………………. 292

15.3 协同过滤实践 ……………………………….. 293

15.3.1 实践背景………………………………… 293

15.3.2 数据处理………………………………… 293

15.3.3 计算相似度矩阵 ……………………… 294

15.3.4 计算推荐结果 …………………………. 295

15.3.5 展示推荐结果 …………………………. 295

15.4 本章小结 ………………………………………. 296

15.5 习题 ……………………………………………… 296

第16章 大数据在生物医学 领域的应用 ………………………. 297

16.1 流行病预测 …………………………………… 297

16.1.1 传统流行病预测机制的不足 ……. 297

16.1.2 基于大数据的流行病预测 ……….. 298

16.1.3 基于大数据的流行病预测的 重要作用………………………………… 299

16.2 智慧医疗 ………………………………………. 299

16.3 生物信息学 …………………………………… 300

16.4 案例:基于大数据的综合健康服务 平台 ……………………………………………… 301

16.4.1 平台概述 ………………………………… 301

16.4.2 平台业务架构 …………………………. 302

16.4.3 平台体系架构 …………………………. 303

16.4.4 平台关键技术 …………………………. 304

16.5 本章小结 ………………………………………. 305

16.6 习题 ……………………………………………… 305

第17章 大数据的其他应用 ………….. 306

17.1 大数据在物流领域中的应用 ………….. 306

17.1.1 智能物流的概念 ……………………… 306

17.1.2 智能物流的作用 ……………………… 307

17.1.3 智能物流的应用 ……………………… 307

17.1.4 大数据是智能物流的关键 ……….. 308

17.1.5 中国智能物流骨干网—菜鸟 … 308

17.2 大数据在城市管理中的应用 ………….. 310

17.2.1 智能交通 ………………………………… 310

17.2.2 环保监测 ………………………………… 311

17.2.3 城市规划 ………………………………… 312

17.2.4 安防领域 ………………………………… 313

17.3 大数据在金融行业中的应用 ………….. 313

17.3.1 高频交易 ………………………………… 313

17.3.2 市场情绪分析 …………………………. 314

17.3.3 信贷风险分析 …………………………. 314

17.4 大数据在汽车行业中的应用 ………….. 315

17.5 大数据在零售行业中的应用 ………….. 316

17.5.1 发现关联购买行为 ………………….. 316

17.5.2 客户群体细分 …………………………. 317

17.5.3 供应链管理 …………………………….. 318

17.6 大数据在餐饮行业中的应用 ………….. 318

17.6.1 餐饮行业拥抱大数据 ………………. 318

17.6.2 餐饮O2O ……………………………….. 319

17.7 大数据在电信行业中的应用 ………….. 320

17.8 大数据在能源行业中的应用 ………….. 321

17.9 大数据在体育和娱乐领域中的 应用 ……………………………………………… 321

17.9.1 训练球队 ………………………………… 322

17.9.2 投拍影视作品 …………………………. 323

17.9.3 预测比赛结果 …………………………. 323

17.10 大数据在安全领域中的应用 …………. 324

17.10.1 大数据与国家安全 ………………… 324

17.10.2 应用大数据技术防御网络 攻击 ……………………………………… 324

17.10.3 警察应用大数据工具预防 犯罪 ……………………………………… 325

17.11 大数据在政府领域中的应用 …………. 326

17.12 大数据在日常生活中的应用 …………. 326

17.13 本章小结 …………………………………….. 328

17.14 习题 ……………………………………………. 328

参考文献 ………………………………………………… 329