大数据技术原理与应用 ——概念、存储、处理、 分析与应用(第4版)

大数据技术 大数据原理
分享 推荐 1 收藏 21 阅读 3.4K
林子雨 (作者) 978-7-115-64181-6

关于本书的内容有任何问题,请联系 孙澍

【内容特点】
(1)内容全面,结构合理:每篇有知识地图,每章配有本章小结、习题和实验。
(2)理论讲解透彻,案例分析详尽:理论内容通俗易懂,结合案例讲解方法和技术,易于教和学。
【资源特点】重点难点知识微课,配套PPT、程序源代码、习题答案等。
【服务特点】作者提供QQ服务群等支持,定期举办直播进行教学培训。
¥65.00 ¥55.25 (8.5 折)
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

特别说明

【主要修订情况】
1. 在篇章设计上,全书依然分为四大部分,包括大数据基础篇、大数据存储与管理篇、大数据处理与分析篇和大数据应用篇。
2. 在内容上主要进行以下修订:
(1)对所有大数据软件的版本进行了升级,升级到了当前最新的稳定版本;
(2)由于流计算框架Storm已经逐渐被Flink取代,因此删除了Storm的详细介绍;
(3)数据可视化技术放在“大数据导论”课程中学习,不列入本书。从严格意义上来讲,数据可视化技术通常不涉及分布式特性,不需要借助于集群进行处理,因此,删除了数据可视化的内容;
(4)对大数据应用章节的内容进行了凝练,从原来的三个章节内容合并成一个章节,并精简了部分内容;
(5)数据仓库和数据湖概念对于大数据从业人员十分重要,因此,增加了一个章节介绍数据仓库和数据湖;
(6)在“Hadoop再探讨”章节中,删除了Pig、Tez和Kafka的介绍。

内容摘要

本书系统介绍大数据的相关知识,分为大数据基础篇、大数据存储与管理篇、大数据处理与分析篇、大数据应用篇。本书共14章,内容包括大数据概述、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、MapReduce、Hadoop再探讨、数据仓库Hive、Spark、流计算、Flink、图计算、大数据应用等。本书在与HDFS、HBase、MapReduce、Hive、Spark和Flink等相关的章中安排了入门级的实验,以帮助读者更好地学习和掌握大数据的关键技术。
本书可以作为高等院校大数据、计算机、信息管理等相关专业的大数据课程教材,也可供相关技术人员参考。

目录

第1篇 大数据基础

第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

第2篇 大数据存储与管理

第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

第3篇 大数据处理与分析

第7章 MapReduce 134
7.1 MapReduce概述 134
7.1.1 分布式并行编程 134
7.1.2 MapReduce模型简介 135
7.1.3 Map和Reduce函数 135
7.2 MapReduce的工作流程 136
7.2.1 MapReduce工作流程概述 136
7.2.2 MapReduce工作流程的各个执行阶段 137
7.2.3 Shuffle过程详解 138
7.3 实例分析:WordCount 141
7.3.1 WordCount的程序任务 141
7.3.2 WordCount的设计思路 141
7.3.3 WordCount的具体执行过程 142
7.3.4 一个WordCount执行过程的实例 143
7.4 MapReduce的具体应用 144
7.4.1 关系代数运算 144
7.4.2 分组与聚合运算 146
7.4.3 矩阵-向量乘法 146
7.4.4 矩阵乘法 146
7.5 MapReduce编程实践 147
7.5.1 任务要求 147
7.5.2 编写Map处理逻辑 148
7.5.3 编写Reduce处理逻辑 149
7.5.4 编写main函数 149
7.5.5 编译打包代码以及运行程序 150
7.6 本章小结 153
7.7 习题 153
实验5 MapReduce初级编程实践 154
第8章 Hadoop再探讨 157
8.1 Hadoop的优化 157
8.1.1 Hadoop的局限与不足 157
8.1.2 针对Hadoop的改进与提升 158
8.2 HDFS 2.0的新特性 158
8.2.1 HDFS HA 158
8.2.2 HDFS联邦 160
8.3 新一代资源调度管理框架YARN 161
8.3.1 MapReduce 1.0的缺陷 162
8.3.2 YARN设计思路 162
8.3.3 YARN体系结构 163
8.3.4 YARN工作流程 165
8.3.5 YARN框架与MapReduce 1.0框架的对比分析 166
8.3.6 YARN的发展目标 167
8.4 本章小结 168
8.5 习题 168
第9章 数据仓库Hive 169
9.1 数据仓库的概念 169
9.2 数据湖 171
9.2.1 数据湖的概念 171
9.2.2 数据湖与数据仓库的区别 172
9.2.3 数据湖能解决的企业问题 173
9.3 湖仓一体 173
9.4 数据仓库Hive概述 174
9.4.1 传统数据仓库面临的挑战 174
9.4.2 Hive简介 175
9.4.3 Hive与Hadoop生态系统中其他组件的关系 175
9.4.4 Hive与传统数据库的对比分析 176
9.4.5 Hive在企业中的部署和应用 176
9.5 Hive系统架构 178
9.6 Hive工作原理 178
9.6.1 SQL语句转换成MapReduce作业的基本原理 179
9.6.2 SQL查询转换成MapReduce作业的过程 180
9.7 Hive HA基本原理 181
9.8 Impala 182
9.8.1 Impala简介 182
9.8.2 Impala的系统架构 183
9.8.3 Impala查询的执行过程 183
9.8.4 Impala与Hive的比较 184
9.9 Hive编程实践 185
9.9.1 Hive的数据类型 185
9.9.2 Hive的基本操作 186
9.9.3 Hive应用实例:WordCount 189
9.9.4 Hive编程的优势 189
9.10 本章小结 190
9.11 习题 190
实验6 熟悉Hive的基本操作 191
第10章 Spark 193
10.1 Spark概述 193
10.1.1 Spark简介 193
10.1.2 Scala简介 194
10.1.3 Spark与Hadoop的对比 194
10.2 Spark生态系统 196
10.3 Spark运行架构 198
10.3.1 基本概念 198
10.3.2 架构设计 198
10.3.3 Spark运行基本流程 199
10.3.4 RDD的设计与运行原理 200
10.4 Spark的部署模式和应用方式 209
10.4.1 Spark的部署模式 209
10.4.2 从“Hadoop+Storm”架构转向Spark架构 210
10.4.3 Hadoop和Spark的统一部署 211
10.5 Spark编程实践 212
10.5.1 启动Spark Shell 212
10.5.2 RDD基本操作 212
10.5.3 Spark应用程序 217
10.6 本章小结 221
10.7 习题 222
实验7 Spark初级编程实践 222
第11章 流计算 225
11.1 流计算概述 225
11.1.1 静态数据和流数据 225
11.1.2 批量计算和实时计算 226
11.1.3 流计算的概念 226
11.1.4 流计算与Hadoop 227
11.1.5 流计算框架与平台 227
11.2 流计算的处理流程 228
11.2.1 概述 228
11.2.2 数据实时采集 229
11.2.3 数据实时计算 229
11.2.4 实时查询服务 229
11.3 流计算的应用场景 230
11.3.1 应用场景1:实时分析 230
11.3.2 应用场景2:实时交通 231
11.4 流计算框架Storm 231
11.5 流计算框架Spark Streaming 232
11.6 流处理框架Structured Streaming 233
11.6.1 Structured Streaming简介 233
11.6.2 Structured Streaming的关键思想 233
11.6.3 Structured Streaming的两种处理模型 234
11.7 流计算框架Flink 235
11.8 本章小结 236
11.9 习题 236
第12章 Flink 237
12.1 Flink简介 237
12.2 为什么选择Flink 237
12.2.1 传统数据处理架构 238
12.2.2 大数据Lambda架构 238
12.2.3 流处理架构 239
12.2.4 Flink是理想的流计算框架 240
12.2.5 Flink的优势 240
12.3 Flink典型应用场景 241
12.3.1 事件驱动型应用 241
12.3.2 数据分析应用 242
12.3.3 数据流水线应用 243
12.4 Flink核心组件栈 244
12.5 Flink体系架构 244
12.6 Flink编程模型 246
12.7 Flink编程实践 246
12.7.1 安装Flink 246
12.7.2 编程实现WordCount程序 248
12.8 本章小结 252
12.9 习题 252
实验8 Flink初级编程实践 253
第13章 图计算 254
13.1 图计算简介 254
13.1.1 传统图计算解决方案的不足之处 254
13.1.2 通用图计算软件 255
13.2 Pregel简介 256
13.3 Pregel图计算模型 256
13.3.1 有向图和顶点 256
13.3.2 顶点之间的消息传递 256
13.3.3 Pregel计算过程 257
13.3.4 Pregel计算过程的实例 258
13.4 Pregel的C++ API 260
13.4.1 消息传递机制 261
13.4.2 Combiner 261
13.4.3 Aggregator 262
13.4.4 拓扑改变 262
13.4.5 输入和输出 262
13.5 Pregel的体系结构 263
13.5.1 Pregel的执行过程 263
13.5.2 容错性 264
13.5.3 Worker 265
13.5.4 Master 265
13.5.5 Aggregator 266
13.6 Pregel的应用实例 266
13.6.1 单源最短路径问题 266
13.6.2 二分匹配问题 267
13.7 Pregel和MapReduce实现PageRank算法的对比 268
13.7.1 PageRank算法 269
13.7.2 PageRank算法在Pregel中的实现 269
13.7.3 PageRank算法在MapReduce中的实现 270
13.7.4 PageRank算法在Pregel 和MapReduce中实现方式的比较 272
13.8 本章小结 272
13.9 习题 273


第4篇 大数据应用

第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.5 大数据在金融领域的应用 283
14.5.1 高频交易 284
14.5.2 市场情绪分析 284
14.5.3 信贷风险分析 284
14.5.4 大数据征信 285
14.6 大数据在汽车领域的应用 286
14.7 大数据在零售领域的应用 286
14.7.1 发现关联购买行为 286
14.7.2 客户群体细分 287
14.7.3 供应链管理 288
14.8 大数据在餐饮领域的应用 288
14.8.1 餐饮领域拥抱大数据 288
14.8.2 餐饮O2O 288
14.9 大数据在电信领域的应用 289
14.10 大数据在能源领域的应用 290
14.11 大数据在体育和娱乐领域的应用 291
14.11.1 训练球队 291
14.11.2 投拍影视作品 291
14.11.3 预测比赛结果 292
14.12 大数据在安全领域的应用 292
14.12.1 “棱镜门”事件 292
14.12.2 应用大数据技术防御网络攻击 293
14.12.3 应用大数据工具预防犯罪 293
14.13 大数据在日常生活中的应用 294
14.14 本章小结 295
14.15 习题 296
参考文献 297

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

林子雨(1978-),男,博士(毕业于北京大学),国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。厦门大学2013年度、2017年度和2020年度奖教金获得者,获评“厦门大学2019年度本科教学示范岗”,入选“2021年高校计算机专业优秀教师奖励计划”。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1500万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”、“2020年国家级线上一流本科课程”和“2021年福建省线上线下混合一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部