大数据已发展成为一个学科。本书作为该领域的入门教材,在内容上尽可能覆盖大数据分析的基本理论和基本技术。全书共9章:第1章介绍大数据发展的背景和相关的理论知识;第2章介绍大数据的采集方法,以及数据采集案例;第3章介绍大数据处理平台Hadoop,以及Hadoop在不同系统平台上的安装和部署方法;第4章介绍MapReduce编程方法和开发工具,以及MapReduce编程实例;第5章介绍HDFS及其相关的操作方法;第6章介绍HBase及其相关的操作方法;第7章介绍Hive及其在不同平台上的安装和部署方法、应用案例;第8章介绍大数据处理平台Spark,以及Spark编程实例;第9章介绍NoSQL数据库,以及典型的NoSQL数据库系统。
本书可作为高等学校计算机、数据科学与大数据技术及人工智能或相关专业的本科生或研究生教材,也可供对大数据分析感兴趣的工程技术人员阅读参考。
本书以大数据的基本概念以及大数据分析过程中常用的技术和平台为主线进行组织和编写,以期让学生掌握大数据分析的基本理论,培养学生的大数据分析技能。
大数据分析是一门综合性的技术,涉及数据的收集、整理、组织、存储、分析、挖掘以及可视化等方面,需要学生具备相关的基础理论知识和技能,包括操作系统、编程语言、数据库、计算机网络等。因此,本书适合大学三年级以上的计算机、数据科学与大数据技术以及人工智能或相关专业的本科生和研究生,以及具有相关知识背景的希望从事大数据分析工作的读者阅读。
本书共9章:第1章介绍大数据发展的背景和相关的理论知识;第2章介绍大数据的采集,包括大数据的来源、采集工具、预处理方法,以及数据采集的实际案例;第3章介绍大数据处理平台Hadoop,包括Hadoop的发展、特点、体系结构,以及Hadoop在不同系统平台上的安装和部署方法;第4章介绍MapReduce编程方法,包括MapReduce概述,开发工具的安装和环境配置,MapReduce编程实例,以及MapReduce应用程序的调试和运行方法;第5章介绍分布式文件系统HDFS,包括HDFS概述和特点、架构,HDFS支持的文件类型,以及HDFS的Shell操作和应用程序的访问方式;第6章介绍HBase,包括HBase概述、架构和特点,以及HBase Shell操作和应用程序的访问方法;第7章介绍Hive,包括Hive概述、体系结构、运行模式,Hive在不同系统平台上的安装和部署,以及应用案例;第8章介绍大数据处理平台Spark,包括Spark概述、Spark的安装和部署、Spark开发环境,以及编程实例。第9章介绍NoSQL数据库,包括NoSQL数据库概述,MongoDB、Redis和Memcached概述、应用场景、数据类型及操作、安装方法和使用实例。
本书通过大量的实践操作,培养学生分析问题和解决问题的能力。第1章是概述,其余各章节除了基础理论知识还包括实践操作。在每章后,都给出了相关的习题,以帮助学生巩固和理解本章的内容。
大数据是一门综合性的技术,现在已经发展成一个独立的学科数据科学与大数据技术。本书作为大数据分析的入门读物和基础教材,不可能覆盖大数据分析涉及的全部知识,有一些重要、前沿的材料未能引入。希望读者在阅读本书的基础上自主学习更新的、更高级的、更加专业的知识。
本书的主要内容是笔者在工作和教学的过程中逐渐积累而成的,书中存在谬误在所难免,敬请读者见谅。
编 者
前 言
第1章 大数据概述 1
11 大数据时代 1
111 大数据的发展历程 1
112 大数据发展的内在驱动力 2
12 大数据的相关概念 6
121 大数据的5V特征 6
122 大数据的相关定义 6
13 大数据的影响 8
14 大数据分析 9
141 大数据分析的特点 9
142 大数据分析的流程 9
143 大数据分析的核心技术 10
144 大数据分析的计算模式 11
15 大数据的行业应用 12
151 社交大数据 12
152 医疗大数据 13
153 房地产大数据 13
16 大数据与其他领域的关系 14
161 云计算、大数据和物联网 14
162 大数据与人工智能 16
习题 16
第2章 大数据的采集 18
21 大数据的来源 18
22 大数据采集工具 19
23 大数据预处理 19
24 Nutch应用案例 20
241 Nutch的安装和配置 21
242 Nutch爬取与内容解析 23
25 Scrapy应用案例 25
251 Scrapy框架概述 25
252 Scrapy的安装和配置 27
253 Scrapy爬取实例 27
254 总结 35
习题 36
第3章 大数据处理平台
Hadoop 37
31 Hadoop概述 37
311 Hadoop的发展历程 37
312 Hadoop的体系结构 38
313 Hadoop的特点 39
32 Hadoop的安装和配置 40
321 准备工作 40
322 Hadoop软件的安装和配置 42
习题 64
第4章 MapReduce编程 66
41 MapReduce概述 66
42 开发工具IntelliJ IDEA 67
43 编程实例 71
431 MapReduce经典入门程序
字数统计(WordCount) 71
432 MapReduce经典进阶程序 81
433 在集群上运行MapReduce
程序 87
习题 93
第5章 HDFS 94
51 HDFS概述 94
52 HDFS的架构及特点 95
53 文件格式及其访问方法 96
531 TextFile 97
532 SequenceFile 99
533 MapFile 102
534 RCFile 106
54 分布式缓存 109
55 HDFS Shell命令 112
56 HDFS的其他访问方式 116
习题 122
第6章 HBase 123
61 HBase概述 123
62 HBase的数据模型 124
63 HBase的逻辑结构 125
64 HBase的架构及特点 126
65 HBase的安装与配置 129
66 HBase Shell命令 135
67 使用Java API访问 HBase 140
习题 145
第7章 Hive 146
71 Hive概述 146
72 在本地安装运行Hive 147
721 下载源文件 147
722 修改配置文件 148
723 启动Hive 150
724 创建数据库和文件夹 152
725 建表及加载数据 152
726 测试Hive 153
73 在Linux中安装Hive 155
731 机器准备 155
732 Hive安装包准备 155
733 修改Hive配置文件 156
734 修改Linux环境变量 157
735 启动Hive和相关测试 158
习题 159
第8章 大数据处理平台Spark 160
81 Spark概述 160
811 Spark的概念 160
812 学习Spark的原因 160
813 Spark组件 161
814 Spark任务执行过程 162
82 Spark本地(Windows)
安装 163
821 安装Scala 163
822 安装Hadoop 164
823 安装Spark 165
83 Spark集群安装 166
84 Spark运行实例 169
841 蒙特·卡罗算法求 169
842 WordCount程序 169
习题 170
第9章 NoSQL数据库 171
91 NoSQL数据库概述 171
911 NoSQL的产生 171
912 互联网对关系数据库提出的
新要求 172
913 NoSQL数据库的分类 172
92 MongoDB 173
921 MongoDB概述 173
922 MongoDB的优势 173
923 MongoDB的安装 174
924 MongoDB使用实例 178
93 Redis 180
931 Redis概述 180
932 Redis的应用场景 181
933 Redis的数据类型及操作 181
934 Redis的安装 182
935 Redis使用实例 184
94 Memcached 185
941 Memcached概述 185
942 Memcached的应用场景 186
943 Memcached的数据类型
及操作 186
944 Memcached的安装 187
945 Memcached使用实例 188
习题 189
参考文献 190