《大数据开发基础与实践(微课版)》从初学者角度详细介绍了大数据开发的基础知识和对应的项目开发实践。全书共七个项目开发案例。第一个项目是大数据集群环境搭建,包括Linux虚拟机、JDK环境、Zookeeper、Hadoop、HBase、Spark等平台的安装和配置;第二个项目是数据仓库构建,包括MySQL、Hive的安装与配置;第三个项目是Java访问Hadoop实践,包括Java访问HDFS文件系统和MapReduce编程实践;第四个项目是大数据采集实践,包括利用Python编程语言、Request库采集网页数据,并介绍利用XPath等技术对数据进行采集的方法;第五个项目是大数据清洗实践,包括利用编程方式和Kettle工具对数据进行清洗;第六个项目是大数据分析实践,包括利用Hive和Spark对数据进行清洗;第七个项目是大数据可视化实践,包括利用Excel和ECharts对数据进行可视化。 通过以上七个项目的开发与应用实践,将会提高读者的大数据开发应用实践能力。《大数据开发基础与实践(微课版)》配备教学PPT、教学视频、教学补充案例等资源。为了帮助读者更好地学习书中的内容,还提供了在线答疑。 《大数据开发基础与实践(微课版)》基础理论与实践相结合,内容深入浅出,并配合实际的项目,适合致力于大数据开发方向的编程爱好者使用,也适用于高职高专以及应用型本科学生作为大数据教程。
《大数据开发基础与实践(微课版)》重点围绕Hadoop 3.0版本集群环境的搭建为基础,介绍Hadoop的三大组件HDFS、MapReduce、YARN,突出其原理和编程实践,通过实例介绍HDFS的存储原理,再介绍通过MApReduce来实现离线计算。此外再介绍与Hadoop紧密相联系的两个平台列式数据库HBASE和Hive数据仓库,分别介绍其安装配置、存储、分析使用原理,适合大数据专业学生作为专业教材和大数据入门爱好者作为学习指导书。并且配套资源丰富,本书提供教学大纲、教学课件、电子教案、习题解答、程序源码等多种教学资源,对重要的知识点和操作方法并提供视频讲解,扫描书中对应的二维码可以在线观看、学习。
为什么要写这本书
大数据是现代社会高科技发展的产物。相对于传统数据库,大数据是海量数据的集合,它以采集、整理、清洗、存储、挖掘、共享、分析、应用、可视化等功能为核心,正广泛地应用于电商、金融、医疗、政务等各个领域。
当前,发展大数据已经成为国家战略,大数据在引领经济社会发展中的新引擎作用更加明显。2014年,大数据首次出现在我国政府工作报告中,并提到要设立新兴产业创业创新平台,在大数据等方面赶超先进,引领未来产业发展。大数据一词逐渐在国内成为热议的词汇。2015年国务院正式印发《促进大数据发展行动纲要》,明确指出要不断地推动大数据发展和应用,在未来打造精准治理、多方协作的社会治理新模式,建立运行平稳、安全高效的经济新机制,建立以人为本、惠及全民的民生服务新体系,开启大众创业、万众创新的创新驱动新格局,培育高端智能、新兴繁荣的产业发展新生态。
本书主要内容
本书以项目一体化的方式深入地讲解了大数据环境搭建、大数据采集、大数据清洗、大数据分析、大数据可视化的基本知识及实现的基本技术和方法,在内容设计上,既有详细的基础知识,又有大量的实践环节,理论与实践相结合,可极大地激发学生在课堂上的学习积极性与主动创造性,让学生在课堂上跟上老师的思维,从而学到更多有用的知识和技能。
全书共有七个项目,主要内容包括大数据集群环境搭建、数据仓库构建、Java访问Hadoop实践、大数据采集实践、大数据清洗实践、大数据分析实践及大数据可视化实践。通过这七个项目开发案例可以使学生强化和巩固对应的知识。
本书主要特点
(1) 采用项目一体化的教学方式,既有教师的讲述,又有学生独立思考、上机操作等内容。
(2) 配套资源丰富。本书提供教学大纲、教学课件、电子教案、程序源码等多种教学资源,对重要的知识点和操作方法提供视频讲解,扫描书中对应的二维码可以在线观看、学习。
(3) 紧跟时代潮流,注重技术变化。书中包含了最新的大数据采集、清洗、分析、可视化等新知识和新技术,并引入了一些主流大数据开源组件,以便学生掌握的知识点更贴近毕业后的就业岗位。
(4) 编写本书的教师都具有多年的教学经验,将重点、难点突出,能够激发学生的学习热情。
读者对象
本书既可以作为大数据专业、软件技术专业、计算机网络专业的教材,也可作为大数据爱好者的参考书。同时笔者作为全国职业院校大数据技能竞赛和全国大学生大数据技能竞赛的指导教师,在编写本教材时充分参阅了最近几届全国职业院校大数据技能竞赛项目和全国大学生大数据技能竞赛的竞赛大纲,将竞赛项目的主要考点融入了本书,使本书对参加大数据技能竞赛的学生也有很好的指导和借鉴作用。
本书由黄天春、刘振栋主编。其中,黄天春编写了第1~3章,刘振栋编写了第4、5章,阳攀编写了第6、7章,宋建华、周希宸和曹勇对全书进行了审阅和校稿工作。
本书是校企合作共同编写的结果,在编写过程中得到了科大讯飞股份有限公司高教人才事业群和大数据研究院的大力支持,对他们提供的试验案例和数据表示衷心的感谢。
在编写过程中,我们参阅了大量的相关资料,在此表示感谢!
勘误和支持
由于编者水平有限,书中难免会出现一些错误或者表述不准确、不严谨的地方,恳请读者批评、指正。
编 者
黄天春,工信部项目管理师(高级)、重庆城市职业学院副教授,工信部系统集成项目经理,IBM认证的WebSphere架构师,从事软件开发和高校教学20年,主持重庆市市级重点课题5项目,主编出版大数据专业教材2本。
项目1 大数据集群环境搭建 1
【项目知识】 2
知识1.1 大数据处理框架 2
1.1.1 大数据的基本概念 2
1.1.2 大数据处理框架分类 3
1.1.3 大数据处理框架的选择 3
知识1.2 组件介绍 4
1.2.1 Hadoop分布式系统框架 4
1.2.2 Hadoop生态圈 4
1.2.3 Hadoop典型应用架构 5
【项目实施】 6
任务1 安装Linux系统 6
【1】任务简介 6
【2】相关知识 6
【3】任务实施 6
【4】任务拓展 16
任务2 安装JDK 1.8 16
【1】任务简介 16
【2】相关知识 16
【3】任务实施 16
【4】任务拓展 18
任务3 安装Zookeeper 19
【1】任务简介 19
【2】相关知识 19
【3】任务实施 20
【4】任务拓展 22
任务4 安装Hadoop 23
【1】任务简介 23
【2】相关知识 23
【3】任务实施 25
【4】任务拓展 29
任务5 安装HBase 30
【1】任务简介 30
【2】相关知识 30
【3】任务实施 36
【4】任务拓展 40
任务6 安装Spark 40
【1】任务简介 40
【2】相关知识 40
【3】任务实施 40
【4】任务拓展 43
任务7 安装Sqoop 43
【1】任务简介 43
【2】相关知识 43
【3】任务实施 44
【4】任务拓展 46
任务8 安装Flume 46
【1】任务简介 46
【2】相关知识 47
【3】任务实施 47
【4】任务拓展 48
项目2 数据仓库构建 49
【项目知识】 50
知识2.1 数据仓库 50
2.1.1 数据仓库的基本概念 50
2.1.2 数据仓库的特点 50
2.1.3 数据仓库的建立过程 51
知识2.2 Hadoop环境下数据仓库的组件介绍 51
2.2.1 Hadoop MySQL Hive数据仓库的架构 51
2.2.2 MySQL介绍 52
2.2.3 Hive介绍 52
【项目实施】 54
任务1 安装MySQL数据库 54
【1】任务简介 54
【2】相关知识 54
【3】任务实施 54
【4】任务拓展 56
任务2 安装Hive 57
【1】任务简介 57
【2】相关知识 57
【3】任务实施 57
【4】任务拓展 59
项目3 Java访问Hadoop实践 61
【项目知识】 62
知识3.1 HDFS基础知识 62
3.1.1 HDFS的基本概念 62
3.1.2 HDFS的Java访问接口 62
3.1.3 Java访问HDFS主要编程步骤 63
知识3.2 MapReduce基础知识 63
3.2.1 MapReduce概述 63
3.2.2 MapReduce编程模型 63
3.2.3 MapReduce编程组件 64
【项目实施】 64
任务1 基础开发环境准备 64
【1】任务简介 64
【2】相关知识 65
【3】任务实施 65
任务2 HDFS Java程序开发 66
【1】任务简介 66
【2】相关知识 66
【3】任务实施 66
【4】任务拓展 69
任务3 基于HDFS实现网络云盘开发 70
【1】任务简介 70
【2】相关知识 70
【3】任务实施 71
【4】任务拓展 83
任务4 MapReduce离线计算之词频统计 83
【1】任务简介 83
【2】相关知识 83
【3】任务实施 84
【4】任务拓展 89
任务5 MapReduce离线计算之排序 90
【1】任务简介 90
【2】相关知识 90
【3】任务实施 90
【4】任务拓展 96
项目4 大数据采集实践 97
【项目知识】 98
知识4.1 数据采集基础知识 98
4.1.1 数据采集技术综述 98
4.1.2 数据采集的方式 98
知识4.2 网络爬虫基础知识 98
4.2.1 网络爬虫的定义 98
4.2.2 网络爬虫的原理 99
4.2.3 网络爬虫的分类 99
4.2.4 网络爬取策略分类 100
4.2.5 简单网络爬虫的架构 100
4.2.6 网页内容解析技术 100
【项目实施】 101
任务1 Python开发环境配置 101
【1】任务简介 101
【2】相关知识 101
【3】任务实施 101
【4】任务拓展 107
任务2 利用urllib获取新闻信息 107
【1】任务简介 107
【2】相关知识 107
【3】任务实施 108
【4】任务拓展 111
任务3 利用Requests进行图片爬取 111
【1】任务简介 111
【2】相关知识 111
【3】任务实施 111
【4】任务拓展 112
任务4 浏览器伪装与XPath解析 113
【1】任务介绍 113
【2】相关知识 113
【3】任务实施 113
【4】任务拓展 114
项目5 大数据清洗实践 115
【项目知识】 116
知识5.1 大数据清洗的概念 116
知识5.2 大数据清洗的目的 117
知识5.3 大数据清洗的技术 118
知识5.4 大数据清洗的路径 121
【项目实施】 122
任务1 基于Web信息的清洗 122
【1】任务简介 122
【2】相关知识 122
【3】任务实施 126
【4】任务拓展 136
任务2 基于Kettle的数据清洗 136
【1】任务简介 136
【2】相关知识 136
【3】任务实施 137
【4】任务拓展 140
项目6 大数据分析实践 141
【项目知识】 142
知识6.1 大数据分析的概念 142
知识6.2 大数据分析的工具 142
知识6.3 大数据分析的方法 142
知识6.4 大数据分析的范畴 144
知识6.5 大数据分析的步骤 144
【项目实施】 145
任务1 利用Hive对电商数据进行分析 145
【1】任务简介 145
【2】相关知识 146
【3】任务实施 148
【4】任务拓展 150
任务2 利用Spark SQL对MySQL数据进行分析 150
【1】任务简介 150
【2】相关知识 150
【3】任务实施 152
【4】任务拓展 156
项目7 大数据可视化实践 157
【项目知识】 158
知识7.1 大数据可视化的概念 158
知识7.2 大数据可视化常用工具 159
【项目实施】 172
任务1 利用Excel对数据进行可视化 172
【1】任务简介 172
【2】相关知识 172
【3】任务实施 172
【4】任务拓展 176
任务2 利用ECharts对数据进行可视化 176
【1】任务简介 176
【2】相关知识 176
【3】任务实施 179
【4】任务拓展 184
任务3 大数据分析处理可视化综合实践 184
【1】任务简介 184
【2】相关知识 185
【3】任务实施 185
【4】任务拓展 201
参考文献 202