教材目录-林子雨-大数据技术原理与应用(第4版)

访问《大数据技术原理与应用(第4版)》教材官网

《大数据技术原理与应用(第4版)》
人民邮电出版社   ISBN:978-7-115-64181-6
定价:69.8元    版次:2024年7月第4版

教材目录

第一篇 大数据基础

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

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

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

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

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

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

1.2 什么是大数据……………………………………..7

1.2.1 数据量大………………………………………7

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

1.2.3 处理速度快…………………………………..9

1.2.4 价值密度低…………………………………..9

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

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

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

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

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

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

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

1.4.1 大数据在各个领域的应用……………15

1.4.2 大数据应用的 3 个层次……………….16

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

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

1.6.1 批处理计算…………………………………18

1.6.2 流计算………………………………………..18

1.6.3 图计算………………………………………..19

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

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

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

1.8.1 云计算………………………………………..21

1.8.2 物联网………………………………………..24

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

1.9 本章小结 …………………………………………..29

1.10 习题………………………………………………..30

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

2.1 Hadoop 概述………………………………………31

2.1.1 Hadoop 简介 ……………………………….31

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

2.1.3 Hadoop 的特性 ……………………………32

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

2.1.5 Hadoop 的版本 ……………………………33

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

2.2.1 HDFS………………………………………….34

2.2.2 HBase …………………………………………34

2.2.3 MapReduce………………………………….34

2.2.4 Hive ……………………………………………34

2.2.5 Pig ……………………………………………..35

2.2.6 Mahout ……………………………………….35

2.2.7 ZooKeeper…………………………………..35

2.2.8 Flume………………………………………….35

2.2.9 Kafka ………………………………………….35

2.2.10 Ambari………………………………………35

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

2.3.1 创建 hadoop 用户 ………………………..36

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

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

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

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

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

2.4 本章小结…………………………………………..41

2.5 习题………………………………………………….42

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

  • 大数据存储与管理

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

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

3.1.1 计算机集群的基本架构……………….48

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

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

3.2 HDFS 简介………………………………………..50

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

3.3.1 块 ………………………………………………52

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

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

3.4 HDFS 体系结构…………………………………54

3.4.1 HDFS 概述 …………………………………54

3.4.2 HDFS 命名空间管理……………………55

3.4.3 通信协议…………………………………….56

3.4.4 客户端 ……………………………………….56

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

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

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

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

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

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

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

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

3.7 HDFS 编程实践…………………………………61

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

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

3.7.3 HDFS 常用 Java API 及应用实例 ….64

3.8 本章小结…………………………………………..67

3.9 习题………………………………………………….67

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

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

4.1 HBase 概述 ……………………………………….70

4.1.1 从 BigTable 说起…………………………70

4.1.2 HBase 简介…………………………………70

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

4.2 HBase 访问接口…………………………………72

4.3 HBase 数据模型…………………………………73

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

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

4.3.3 数据坐标…………………………………….74

4.3.4 概念视图…………………………………….75

4.3.5 物理视图…………………………………….75

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

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

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

4.4.2 表和 Region ………………………………..79

4.4.3 Region 的定位 …………………………….79

4.5 HBase 运行机制…………………………………81

4.5.1 HBase 的系统架构 ………………………81

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

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

4.5.4 HLog 文件的工作原理…………………85

4.6 HBase 编程实践…………………………………85

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

4.6.2 HBase 常用的 Java API 及应用

实例……………………………………………88

4.7 本章小结…………………………………………..98

4.8 习题………………………………………………….99

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

第 5 章 NoSQL 数据库……………………102

5.1 NoSQL 数据库简介………………………….102

5.2 NoSQL 数据库兴起的原因……………….103

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

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

5.3 NoSQL 数据库与关系数据库的简单比较………………………………………………..105

5.4 NoSQL 数据库的四大类型……………….106

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

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

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

5.4.4 图数据库…………………………………..109

5.5 NoSQL 数据库的三大基石……………….109

5.5.1 第一大基石:CAP …………………….109

5.5.2 第二大基石:BASE…………………..111

5.5.3 第三大基石:最终一致性………….113

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

5.7 本章小结…………………………………………115

5.8 习题………………………………………………..115

实验 4 NoSQL 数据库和关系数据库的操作比较……………………………………115

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

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

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

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

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

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

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

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

6.2.1 主流云数据库厂商概述……………..124

6.2.2 亚马逊的云数据库产品……………..125

6.2.3 谷歌的云数据库产品…………………125

6.2.4 微软的云数据库产品…………………125

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

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

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

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

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

6.4 本章小结 …………………………………………132

6.5 习题………………………………………………..132

第三篇 大数据处理与分析

第 7 章 MapReduce…………………………135

7.1 MapReduce 概述………………………………135

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

7.1.2 MapReduce 模型简介…………………136

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

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

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

7.2.2 MapReduce 工作流程的各个执行

阶段………………………………………….138

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

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

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

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

7.3.3 WordCount 的具体执行过程……….143

7.3.4 一个 WordCount 执行过程的

实例………………………………………….144

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

7.4.1 关系代数运算……………………………145

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

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

7.4.4 矩阵乘法…………………………………..147

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

7.5.1 任务要求…………………………………..148

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

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

7.5.4 编写 main 函数………………………….150

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

7.6 本章小结 …………………………………………154

7.7 习题………………………………………………..154

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

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

8.1 Hadoop 的优化…………………………………158

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

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

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

8.2.1 HDFS HA………………………………….159

8.2.2 HDFS 联邦 ……………………………….161

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

8.3.1 MapReduce 1.0 的缺陷 ………………163

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

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

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

8.3.5 YARN 框架与 MapReduce 1.0 框架

的对比分析……………………………….167

8.3.6 YARN 的发展目标…………………….168

8.4 本章小结…………………………………………169

8.5 习题………………………………………………..169

第 9 章 数据仓库 Hive…………………….170

9.1 数据仓库的概念………………………………170

9.2 数据湖…………………………………………….172

9.2.1 数据湖的概念……………………………172

9.2.2 数据湖与数据仓库的区别………….173

9.2.3 数据湖能解决的企业问题………….174

9.3 湖仓一体…………………………………………174

9.4 数据仓库 Hive 概述 …………………………175

9.4.1 传统数据仓库面临的挑战………….175

9.4.2 Hive 简介………………………………….176

9.4.3 Hive 与 Hadoop 生态系统中其他

组件的关系……………………………….176

9.4.4 Hive 与传统数据库的对比分析 ….177

9.4.5 Hive 在企业中的部署和应用……..177

9.5 Hive 系统架构 …………………………………179

9.6 Hive 工作原理 …………………………………179

9.6.1 SQL 语句转换成 MapReduce

作业的基本原理………………………..180

9.6.2 SQL 查询转换成 MapReduce作业的过程……………………………….181

9.7 Hive HA 基本原理 …………………………..182

9.8 Impala……………………………………………..183

9.8.1 Impala 简介 ………………………………183

9.8.2 Impala 的系统架构…………………….184

9.8.3 Impala 查询的执行过程……………..184

9.8.4 Impala 与 Hive 的比较……………….185

9.9 Hive 编程实践 …………………………………186

9.9.1 Hive 的数据类型……………………….186

9.9.2 Hive 的基本操作……………………….187

9.9.3 Hive 应用实例:WordCount……….190

9.9.4 Hive 编程的优势……………………….190

9.10 本章小结……………………………………….191

9.11 习题………………………………………………191

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

第 10 章 Spark…………………………………..194

10.1 Spark 概述……………………………………..194

10.1.1 Spark 简介 ………………………………194

10.1.2 Scala 简介……………………………….195

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

10.2 Spark 生态系统………………………………197

10.3 Spark 运行架构………………………………199

10.3.1 基本概念…………………………………199

10.3.2 架构设计…………………………………199

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

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

10.4 Spark 的部署模式和应用方式…………210

10.4.1 Spark 的部署模式…………………….210

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

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

10.5 Spark 编程实践………………………………213

10.5.1 启动 Spark Shell ………………………213

10.5.2 RDD 基本操作 ………………………..213

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

10.6 本章小结……………………………………….222

10.7 习题………………………………………………223

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

第 11 章 流计算…………………………………226

11.1 流计算概述 ……………………………………226

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

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

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

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

11.1.5 流计算框架与平台…………………..228

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

11.2.1 概述………………………………………..229

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

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

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

11.3 流计算的应用场景 …………………………231

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

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

11.4 流计算框架 Storm…………………………..232

11.5 流计算框架 Spark Streaming……………233

11.6 流处理框架 Structured Streaming……..234

11.6.1 Structured Streaming 简介 …………234

11.6.2 Structured Streaming 的关键

思想………………………………………..234

11.6.3 Structured Streaming 的两种处理模型…………………………………235

11.7 流计算框架 Flink……………………………236

11.8 本章小结 ……………………………………….237

11.9 习题………………………………………………237

第 12 章 Flink …………………………………….238

12.1 Flink 简介………………………………………238

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

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

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

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

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

12.2.5 Flink 的优势 ……………………………241

12.3 Flink 典型应用场景………………………..242

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

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

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

12.4 Flink 核心组件栈……………………………245

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

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

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

12.7.1 安装 Flink ……………………………….247

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

12.8 本章小结……………………………………….253

12.9 习题………………………………………………253

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

第 13 章 图计算…………………………………255

13.1 图计算简介 ……………………………………255

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

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

13.2 Pregel 简介…………………………………….257

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

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

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

13.3.3 Pregel 计算过程……………………….258

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

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

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

13.4.2 Combiner…………………………………262

13.4.3 Aggregator……………………………….263

13.4.4 拓扑改变…………………………………263

13.4.5 输入和输出……………………………..263

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

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

13.5.2 容错性…………………………………….265

13.5.3 Worker…………………………………….266

13.5.4 Master……………………………………..266

13.5.5 Aggregator……………………………….267

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

13.6.1 单源最短路径问题…………………..267

13.6.2 二分匹配问题………………………….268

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

13.7.1 PageRank 算法…………………………270

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

13.7.3 PageRank 算法在 MapReduce 中的实现………………………………………..271

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

13.8 本章小结 ……………………………………….273

13.9 习题………………………………………………274

第四篇 大数据应用

第 14 章 大数据应用………………………..276

14.1 大数据在互联网领域的应用 …………..276

14.2 大数据在生物医学领域的应用 ……….277

14.2.1 流行病预测……………………………..277

14.2.2 智慧医疗…………………………………278

14.2.3 生物信息学……………………………..279

14.3 大数据在物流领域的应用 ………………279

14.3.1 智能物流的概念………………………280

14.3.2 大数据是智能物流的关键………..280

14.3.3 中国智能物流骨干网—菜鸟 ……………………………………….280

14.4 大数据在城市管理领域的应用 ……….281

14.4.1 智能交通…………………………………281

14.4.2 环保监测…………………………………282

14.4.3 城市规划…………………………………282

14.4.4 安防 ……………………………………….283

14.4.5 疫情防控…………………………………283

14.5 大数据在金融领域的应用 ………………284

14.5.1 高频交易…………………………………284

14.5.2 市场情绪分析………………………….284

14.5.3 信贷风险分析………………………….285

14.5.4 大数据征信……………………………..285

14.6 大数据在汽车领域的应用 ………………286

14.7 大数据在零售领域的应用 ………………287

14.7.1 发现关联购买行为…………………..287

14.7.2 客户群体细分………………………….287

14.7.3 供应链管理……………………………..288

14.8 大数据在餐饮领域的应用 ………………288

14.8.1 餐饮领域拥抱大数据……………….289

14.8.2 餐饮 O2O………………………………..289

14.9 大数据在电信领域的应用 ………………290

14.10 大数据在能源领域的应用 …………….290

14.11 大数据在体育和娱乐领域的应用…..291

14.11.1 训练球队……………………………….291

14.11.2 投拍影视作品………………………..292

14.11.3 预测比赛结果………………………..292

14.12 大数据在安全领域的应用 …………….293

14.12.1 “棱镜门”事件………………………293

14.12.2 应用大数据技术防御网络攻击………………………………………293

14.12.3 警察应用大数据工具预防犯罪………………………………………294

14.13 大数据在日常生活中的应用 …………294

14.14 本章小结……………………………………..296

14.15 习题…………………………………………….296

参考文献 …………………………………297