第3版前言



《大数据基础编程、实验和案例教程》(第2版)完成书稿的时间是2020年3月,并于2020年10月出版,从第2版书稿完成至今已经过去3年多。在这3年多里,大数据技术仍然处于快速更新和迭代当中,一些老的技术(如MapReduce和Storm)逐步走向没落,批处理框架MapReduce被Spark全面取代,流计算框架Storm也由于Flink的崛起而将最终走向沉寂。同时,各个大数据软件的版本也在不断升级,Hadoop从3.1.3升级到了3.3.5,Spark从2.4.0升级到了3.4.0,Flink从1.9.1升级到了1.16.2。为了让本书紧跟技术发展步伐,因此有必要编写第3版。
与第2版相比,第3版的内容变化主要包括: ①更换了虚拟机软件,使用VMware而不是VirtualBox,大大提升了使用体验,让大数据实验开展更加顺畅简便; ②对所有大数据软件的版本进行了升级,升级到了当前最新的稳定版本; ③对数据可视化技术的内容进行了全部更新,介绍了数据可视化概念和相关技术,并重点介绍了Matplotlib的用法。
本书第2版是《大数据技术原理与应用》(第3版)的“姊妹书”,前者可以作为后者的课程配套实验手册。现在,《大数据技术原理与应用》(第3版)已经改版到了第4版,作为配套“姊妹书”,本书也及时从第2版升级到第3版。也就是说,在今后的教学过程中,本书第3版是和《大数据技术原理与应用》(第4版)配套使用的。当然,通过全国高校老师的反馈信息,我们也了解到,不少高校会直接把本书作为单独的课程教材(而不是课程配套的实验手册)来使用,因此本书第3版也可以作为独立教材来使用。
本书官网免费提供了全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,在学习大数据课程的过程中,欢迎读者访问厦门大学数据库实验室建设的国内首个高校大数据课程公共服务平台,该平台为教师教学和学生学习大数据课程提供教学大纲、讲义PPT、学习指南、备课指南、实验指南、上机习题、授课视频、技术资料等,提供全方位、一站式免费服务。
本书由林子雨执笔。在编写第3版的过程中,厦门大学计算机科学与技术系夏小云老师和硕士研究生周凤林、吉晓函、刘浩然、周宗涛、黄万嘉、曹基民等做了大量辅助性工作,在此向他们表示衷心的感谢。大数据技术处于快速发展和变革之中,厦门大学大数据课程虚拟教研室会持续跟踪大数据技术发展趋势,努力保持本书内容的新颖性,并把一些较新的教学内容及时发布到本书官网。书中难免存在不足之处,望广大读者不吝赐教。

林子雨2024年5月于厦门大学大数据课程虚拟教研室〖2〗〖4〗大数据基础编程、实验和案例教程(第3版)第3版前言〖3〗《大数据基础编程、实验和案例教程》的第1版于2017年7月出版,在过去的几年时间里,大数据技术又获得了新的发展,开源流计算框架Flink迅速崛起,在市场上和Spark展开了激烈的角逐。与此同时,Hadoop和Spark的版本也在不断更新升级,一些编程接口发生了变化。因此,为了适应大数据技术的新发展,继续保持本书的先进性和实用性,我们及时对第1版内容进行了补充和修订。
下面对第1版内容的修改做简要说明。
第2章Linux系统的安装和使用,升级了VirtualBox软件的版本,并修改了在Linux系统中安装Eclipse的方法。
第3章Hadoop的安装和使用,修改了Hadoop简介及Java环境的安装方法,升级Hadoop到3.1.3版本;同时,删除了“使用Docker搭建Hadoop分布式集群”这部分内容,因为该内容在教学中很少被使用。
第4章HDFS操作方法和基础编程,升级Hadoop到3.1.3版本,并根据最新版本的特点对HDFS相关内容做了修改;同时重新撰写了HDFS编程实践的内容。
第5章HBase的安装和基础编程,升级HBase到2.2.2版本,版本升级后,HBase的安装配置方法和相关的编程接口也发生了变化,因此,对编程接口和实例代码进行了大量修改。
第6章典型NoSQL数据库的安装和使用,升级Redis到较新的5.0.5版本,并对由于版本升级而发生变化的内容做了修改。
第7章MapReduce基础编程,升级Hadoop到3.1.3版本,并对由于版本升级而发生变化的内容做了修改。
第8章数据仓库Hive的安装和使用,升级Hive到3.1.2版本,并对由于版本升级而发生变化的内容做了修改。
第9章Spark的安装和基础编程,升级Spark到2.4.0版本,并对由于版本升级而发生变化的内容做了修改。
第10章Flink的安装和基础编程,本章内容均为新增,以反映当前新兴的大数据处理技术,并介绍了Flink的安装和基础编程方法。第11章典型可视化工具的使用方法,删除了一些教学环节不太方便开展实践的内容,包括Easel.ly、Tableau和魔镜等,因为这些技术产品存在官网无法访问、需要用户注册才能使用等问题。
第12章数据采集工具的安装和使用,删除了Flume的内容,因为该内容比较孤立,未与其他章节的内容进行有效结合;同时删除了Sqoop的内容,因为Sqoop不支持最新版Hadoop和Hive等软件。
第13章大数据课程综合实验案例,升级了各个大数据软件的版本,并删除了和Sqoop相关的操作实践,因为Sqoop不支持新版的Hadoop和Hive;同时增加了使用Java程序把Hive中的数据导入MySQL。
第14章实验,升级实验中相关软件到较新的版本,并新增了3个实验,从而帮助读者更好实践Hive、Spark和Flink等大数据技术。
本书第1版是《大数据技术原理与应用》(第2版)的“姊妹篇”,前者可以作为后者的课程配套实验手册。由于《大数据技术原理与应用》(第2版)已经在全国高校得到了广泛使用,很多高校采用该教材开设了大数据课程,因此,这也带动了本书第1版在高校的大量使用。在使用过程中,一些高校老师积极反馈了很多宝贵的意见和建议,为我们团队进行本书第2版的创作提供了很好的方向指引。同时,笔者也在厦门大学开设了大数据课程,并把本书第1版积极应用在实践教学中,让教材在教学实践中经受检验。现在,《大数据技术原理与应用》(第2版)已经改版到了第3版,作为配套“姊妹篇”,本书也及时从第1版升级到第2版。也就是说,在未来的教学过程中,本书第2版是与《大数据技术原理与应用》(第3版)配套使用的。当然,通过过去全国高校老师的反馈信息,我们也了解到,不少高校会直接把本书作为单独的课程教材(而不是配套的实验手册)来使用,因此本书第2版也可以作为独立教材来使用。
本书由林子雨执笔。在撰写过程中,厦门大学计算机科学系硕士研究生程璐、林哲、郑宛玉、陈杰祥、陈绍纬、周伟敬等做了大量辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。
本书官网免费提供全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,在学习大数据课程的过程中,欢迎读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台。该平台为教师教学和学生学习大数据课程提供包括教学大纲、讲义PPT、学习指南、备课指南、实验指南、上机习题、授课视频、技术资料等全方位、一站式免费服务。
大数据技术处于快速发展变革之中,厦门大学数据库实验室团队会持续跟踪大数据技术发展趋势,努力保持本书内容的新颖性,并把一些较新的教学内容及时发布到本书官网。由于笔者能力有限,书中难免存在不足之处,望广大读者不吝赐教。

林子雨2020年6月于厦门大学数据库实验室大数据带来了信息技术的巨大变革,并深刻影响着社会生产和人民生活的方方面面。大数据专业人才的培养是世界各国新一轮科技较量的基础,高等院校承担着大数据人才培养的重任,需要及时建立大数据课程体系,为社会培养和输送一大批具备大数据专业素养的高级人才,满足社会对大数据人才日益旺盛的需求。
高质量的教材是推进高校大数据课程体系建设的关键支撑。2013年12月,笔者根据自己主讲厦门大学计算机科学系研究生大数据课程的教学实践,编写了电子书《大数据技术基础》,通过网络免费发布,反响较好。此后两年多的时间里,笔者继续对大数据技术知识体系进行深入学习和系统梳理,并结合教学实践和大量调研,编著出版了《大数据技术原理与应用》,该书第1版于2015年8月出版发行,第2版于2017年2月出版发行。《大数据技术原理与应用》一书侧重于介绍大数据技术的实现原理,编程实践内容较少,该教材定位为入门级大数据教材,以“构建知识体系、阐明基本原理、开展初级实践、了解相关应用”为原则,旨在为读者搭建通向大数据知识空间的桥梁和纽带,为读者在大数据领域深耕细作奠定基础、指明方向。教材系统论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、大数据处理架构Spark、流计算、图计算、数据可视化,以及大数据在互联网、生物医学和物流等各个领域的应用。
《大数据技术原理与应用》一书出版以后,获得了读者较高认可,目前已经成为国内多所高校的大数据课程教材。与此同时,笔者在最近两年通过各种形式助力全国高校加快推进大数据课程建设,包括建设全国高校大数据课程公共服务平台,开展全国高校大数据公开课巡讲计划,组织全国高校大数据教学论坛,举办全国高校大数据课程教师培训交流班等。通过这些活动,笔者与全国高校广大大数据课程教师有了更深的接触和交流,也收集到了广大一线教师的核心教学需求。很多高校教师在高度肯定《大数据技术原理与应用》教材的同时,也提出了很多中肯的改进意见和建议,其中,有很多教师指出,应该加强大数据实践环节的训练,提供实验指导和综合案例。
为了更好地满足高校教学实际需求,笔者带领厦门大学数据库实验室团队,开展了大量的探索和实践,并对实践材料进行系统整理,在此基础上编写了本书。本书侧重于介绍大数据软件的安装、使用和基础编程方法,并提供大量实验和案例。由于大数据软件都是开源软件,安装过程一般比较复杂,也很耗费时间。为了尽量减少读者搭建大数据实验环境时的障碍,笔者在本书中详细介绍了各种大数据软件的详细安装过程,可以确保读者顺利完成大数据实验环境搭建。
本书共13章,详细介绍系统和软件的安装、使用以及基础编程方法。第1章介绍大数据关键技术和代表性软件,帮助读者形成对大数据技术及其代表性软件的总体性认识。第2章介绍Linux系统的安装和使用方法,为后面其他章节的学习奠定基础。第3章介绍分布式计算框架Hadoop的安装和使用方法。第4章介绍分布式文件系统HDFS的操作方法和基础编程。第5章介绍分布式数据库HBase的安装和基础编程方法。第6章介绍典型NoSQL数据库的安装和使用方法,包括键值数据库Redis和文档数据库MongoDB。第7章介绍如何编写基本的MapReduce程序。第8章介绍基于Hadoop的数据仓库Hive的安装和使用方法。第9章介绍基于内存的分布式计算框架Spark的安装和基础编程方法。第10章介绍5种典型可视化工具的安装和使用方法,包括Easel.ly、D3、Tableau、魔镜、ECharts等。第11章介绍数据采集工具的安装和使用方法,包括Flume、Kafka和Sqoop。第12章介绍一个大数据课程综合实验案例,即网站用户购物行为分析。第13章通过5个实验让读者加深对知识的理解。
本书面向高校计算机和信息管理等相关专业的学生,可以作为专业必修课或选修课的辅助教材。本书是《大数据技术原理与应用》(第2版)的“姊妹篇”,可以作为《大数据技术原理与应用》(第2版)的辅助配套教程,两本书组合使用,可以取得更好的学习效果。此外,本书也可以和市场上现有的其他大数据教材配套使用,作为教学辅助用书。
本书由林子雨执笔。在撰写过程中,厦门大学计算机科学系硕士研究生谢荣东、罗道文、邓少军、阮榕城、薛倩、魏亮、曾冠华等做了大量辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。
本书官网免费提供全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,在学习大数据课程的过程中,欢迎读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台,该平台为教师教学和学生学习大数据课程提供包括教学大纲、讲义PPT、学习指南、备课指南、上机习题、授课视频、技术资料等全方位、一站式免费服务。
本书在撰写过程中,参考了大量网络资料,对大数据技术及其典型软件进行了系统梳理,有选择地把一些重要知识纳入本书。由于笔者能力有限,本书难免存在不足之处,望广大读者不吝赐教。

林子雨2017年2月于厦门大学