随着信息技术的普及和应用,各行各业产生了大量的数据,人们持续不断地探索处理这些数据的方法,以期大限度地从中挖掘有用信息。面对如潮水般不断增加的数据,人们不再满足于数据的查询和统计分析,而是期望从数据中提取信息或者知识为决策服务。数据挖掘技术突破数据分析技术的种种局限,结合统计学、数据库、机器学习等技术解决从数据中发现新的信息并辅助决策这一难题,是正在飞速发展的前沿学科。近年来,随着教育部“新工科”建设的不断推进,大数据技术受到广泛关注。数据挖掘作为大数据技术的重要实现手段,能够挖掘数据的关联规则,实现数据的分类、聚类、异常检测和时间序列分析等,解决商务管理、生产控制、市场分析、工程设计和科学探索等各行各业中的数据分析与信息挖掘问题。
Hadoop是一系列分布式存储和计算软件,由Doug Cutting创建,能够支持互联网数据量级别的系统。狭义的Hadoop项目仅包含Hadoop Common、HDFS、YARN和MapReduce 4个组件。广义的Hadoop项目还包含了其他一些衍生性的项目组件,它们或多或少依赖以上4个核心组件,如数据存储依赖于HDFS、作业调度和资源管理依赖YARN,同时它们还解决了一些特定领域的问题。常用的包括Spark、HBase、Hive、Sqoop、Oozie、Impala、Hue、Pig等。
截至2019年1月,共有283所高校获批“数据科学与大数据技术”专业,其中985及211高校占比13%。目前国内大数据人才缺口更是达到百万级。由于其开源性、易用性和强大的数据分析能力,Hadoop已成为世界范围内应用广泛的数据科学工具和语言之一。目前,Hadoop大数据分析与挖掘逐渐成为高校信息类专业的必修课,同时,作为面向各专业的通识课也广受欢迎。
本书作为立足于应用型本科数据科学与大数据教学的Hadoop核心课教材,具有如下特色:
(1)内容安排合理且全面,从Hadoop的安装配置、分布式数据处理、分布式数据仓库到分布式机器学习,循序渐进,深入浅出。
(2)难度适中,适用于本科中高年级的核心课教材,仅需掌握Python基本编程和Linux基本操作就可以学习本书,对Java编程及数学和算法知识不作为必要基础。
(3)理论与案例相结合,理论与实践相结合,包含了泰坦尼克号乘客生存分析、航班准点数据处理、鸢尾花数据建模等实践案例。
本书主要内容分为以下3部分:
第1部分:Hadoop核心基础,包括第1~4章。第1章为Hadoop简介,包括Hadoop的相关背景、基本概念、安装、配置和运行等。第2章为HDFS文件系统,包括HDFS架构、文件库和常用操作等。第3章为YARN资源管理,包括YARN架构、调度策略和常用操作等。第4章为MapReduce计算框架,包括各MapReduce原理、流程、词频统计和数据连接的实现等。
第2部分:Hive数据仓库,包括第5~8章。第5章为Hive简介,包括Hive的相关背景、基本概念、安装、配置和运行等。第6章为Hive数据定义,包括数据库操作、数据表操作、数据格式、外部表和分区表等。第7章为数据操作,包括数据导入、数据插入和数据导出等。第8章为Hive数据查询,包括基本查询、数据聚合和数据连接等。
第3部分:Spark数据分析,包括第9~13章。第9章为Spark简介,包括Spark的相关背景、基本概念、安装、配置和运行等。第10章为Spark大数据处理,包括大数据的选择、聚合、引用、筛选、连接和变形等。第11章为Spark机器学习流程,包括数据探索、划分、填充、特征选择、建模调优和测试评估等。第12章为Spark有监督学习模型,包括线性、决策树、随机森林、神经网络和协同过滤等。第13章为Spark无监督学习模型,包括k均值聚类、主成分分析和关联分析模型等。
本书例子中的所有数据都可在GitHub上公开下载,地址为https://github.com/ yepdata/hadoop_textbook。
本书由高永彬、钱亮宏和方志军编著。具体分工如下:高永彬编写第1~4章;方志军编写第5~8章,钱亮宏编写第9~13章。全书由范磊和许华根主审。同时感谢戴仁月、严娟和刘敏对本书的贡献。
由于编者水平有限,加之时间仓促,书中难免存在疏漏和不足之处,敬请老师和同学批评指正。
编 者
2019年5月