本书是大数据技术普及系列读物之一,主要涉及大数据采集、分布式文件存储和非关系型数据管理等内容。全书共6章,每章一个专题,按照大数据运用流程,从网页和日志文件两种常用的大数据采集方法入手,介绍了分布式文件存储、NoSQL数据库基础理论和4种NoSQL数据库技术。针对特定技术选择了一款最典型的产品进行诠释,先后对Python语言中的Requests和BeautifulSoup包,Hadoop生态中的Flume、HDFS和HBase,以及Redis、MongoDB和Neo4j等产品进行了介绍。在每章结构上,按照要做什么(需求背景)、是什么(产品功能和特性)、为什么(体系结构/数据模型)和怎么做(基本操作)?4个方面递进展开,内容相对独立,方便读者根据自身需要选择章节进行阅读。
全书内容相对浅显,具有较强的可读性,适合对大数据技术感兴趣,希望从技术和产品层面对大数据采集、存储和管理进行初步学习的读者阅读。
近年来,“大数据”一词成为人们生活中的高频词。无论在教育界,还是工业界,乃至政府机关,在诸多正式或非正式的场合,都涉及大数据的学习与应用。编者认为,对“大数据”至少应从数据、技术和理念三个层面来理解。在数据层面,大数据就是一堆数据,即超出传统系统处理能力的海量数据;在技术层面,大数据背后有一系列的技术和产品支撑,包括数据的采集、存储、管理和分析挖掘等;在理念层面,大数据就是“以数据为大”,小企业注重分析挖掘数据价值,大企业数据视为核心资产。
从数据和理念层面来看,大数据已为人所熟知,但技术层面则因其专业性强,阅读门槛高,很多概念、产品和知识尚需推广普及。本书采用简单易懂的科普方式,将大数据采集、分布式文件存储、各种新型数据库管理技术等知识呈现给读者。在整体内容上,本书涵盖网络爬虫、日志文件采集、分布式文件存储、NoSQL技术、文档数据库、列族数据库和图数据库等知识,覆盖了大数据的采集、存储和管理的方方面面。
本书编写时特别注意了3点。一是每章在内容上相对独立,每章都可以独立地作为一个专题,而不需要其他章节内容的支撑。当然,如果能够按顺序阅读,体验会更好。二是选择主流、典型的开源产品来阐述特定技术。例如,分布式文件存储的HDFS、列族数据库HBase、文档数据库MongoDB和图数据库Neo4j等,都是本领域最为流行的开源产品。针对某种产品,选择其次新版进行介绍,兼顾了时效性和稳定性。三是辅以必要的操作来“感性”地体现产品的特性和功能,操作流程和结果体现“知其然”;对一些经典的产品如HDFS和HBase,还给出了一些“所以然”的知识,供读者深入阅读。
本书适合对大数据技术感兴趣,希望从技术层面对大数据采集、存储和管理技术有初步了解的学生和企事业工作人员阅读,也可作为计算机相关人员的补充读物。
本书所涉及的内容都是目前工业界流行的技术和产品,相关资料众多,加之编者水平有限,书中可能还存在不足之处,恳请广大读者不吝赐教。
编 者
2023年2月
第1章 大数据采集 1
1.1 概述 1
1.2 网页数据的爬取 3
1.2.1 网络爬虫概述 3
1.2.2 网络爬虫的实现 5
1.2.3 网页爬取策略 12
1.3 日志文件的采集 13
1.3.1 Apache软件组织 13
1.3.2 文件采集工具Flume 14
1.3.3 实验:Flume的使用方法 16
小结 18
第2章 分布式文件存储 19
2.1 Hadoop概述 19
2.1.1 Hadoop的诞生与发展 19
2.1.2 Hadoop生态系统 21
2.1.3 Hadoop版本演进 23
2.1.4 Hadoop的发行版本 25
2.2 HDFS分布式文件系统 25
2.2.1 HDFS概述 25
2.2.2 HDFS设计思想 26
2.2.3 HDFS实现机制 28
2.2.4 HDFS数据读取和写入 32
2.2.5 HDFS文件操作方式 35
2.3 HDFS分布式部署实战 38
2.3.1 虚拟化技术 38
2.3.2 实验设计 41
2.3.3 实验过程 42
小结 50
第3章 NoSQL数据库 51
3.1 数据管理技术的发展 51
3.2 关系型数据库技术 53
3.3 NoSQL技术概述 58
3.3.1 传统数据库面临的挑战 58
3.3.2 NoSQL技术的特点 58
3.3.3 NoSQL的理论基础 61
3.4 常见的NoSQL数据库 62
3.4.1 NoSQL数据库的分类 62
3.4.2 键值数据库 64
小结 67
第4章 列族数据库 69
4.1 概述 69
4.2 HBase数据模型 70
4.2.1 列族数据模型 70
4.2.2 一个网页的数据实例 75
4.3 HBase体系结构 76
4.4 常用命令 79
4.4.1 表操作 80
4.4.2 数据操作 82
小结 84
第5章 文档数据库 85
5.1 以文档进行数据存储 85
5.1.1 文本文件 85
5.1.2 常用的数据存储和交换文件类型 86
5.1.3 用数据库管理文档 89
5.2 MongoDB文档数据库 89
5.2.1 概述 90
5.2.2 数据模型 91
5.2.3 BSON数据存储 94
5.3 MongoDB的常用操作 96
5.3.1 安装部署 96
5.3.2 数据库操作 97
5.3.3 集合操作 99
5.3.4 索引操作 107
小结 109
第6章 图数据库 110
6.1 概述 110
6.2 图模型 112
6.2.1 图论 112
6.2.2 网络模型 113
6.2.3 图数据库 115
6.3 图数据的存储 116
6.3.1 邻接矩阵 117
6.3.2 邻接表 118
6.4 图数据的检索 118
6.5 图数据库Neo4j 119
6.5.1 概况 119
6.5.2 安装使用 120
小结 123
参考文献 124