本教材将Hive相关技术分为9个项目:认识Hive,Hive环境搭建,Hive基本语法,Hive数据定义,数据的导入与导出,Hive数据查询,Hive函数,Hive优化,综合案例。对Hive数据仓库的应用进行了详细描述。通过本教材的学习,读者将对Hive有深刻的认识。
党的二十大报告指出加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群。数据已成为当今社会重要的生产要素,大数据技术作为以数据生成、采集、存储、加工、分析、服务为主的新一代信息技术,是加快经济社会发展质量变革、效率变革、动力变革的重要引擎,是经济社会数字化转型的主要驱动力,是建设创新型国家、制造强国、数字中国、智慧社会的基础支撑。
随着大数据技术的逐步应用,各行各业都积累了海量数据,如何存储和处理这些数据成为各行各业所面临的问题。Hive是可实现大规模存储、处理、分析数据的分布式容错数据仓库系统。该数据仓库集中存储信息,可以轻松对此类信息进行分析,从而做出明智的数据驱动决策,Hive使用户可以利用SQL读取、写入和管理PB级数据。
Hive建立在Apache Hadoop基础之上,后者是一种开源框架,可被用于高效存储与处理大型数据集。因此,Hive与Hadoop紧密集成,其设计可快速对PB级数据进行操作。Hive的与众不同之处在于它可以利用Apache Tez或MapReduce通过类似于SQL的界面查询大型数据集。Hive旨在让非程序员使用名为HiveQL的类似于SQL的界面对PB级数据进行操作。传统关系数据库被用于对中小型数据集进行交互式查询,在处理大型数据集时的表现并不理想。但Hive使用批处理,因此可以快速操作大型的分布式数据库。Hive将HiveQL查询转换成在Apache Hadoop的分布式作业计划框架,它会查询存储在分布式存储解决方案中的数据,如Hadoop Distributed File System(HDFS)或Amazon S3。
本教材将Hive相关技术分为9个项目,对Hive数据仓库的应用进行了详细描述。通过本教材的学习,读者将对Hive有深刻的认识。现将本教材涉及的Hive的9个项目进行简要介绍。
项目1:认识Hive,主要介绍数据仓库的概念、特点、模型、体系结构,以及Hive的概念、体系结构、数据类型等内容。
项目2:Hive环境搭建,主要介绍搭建Hive的过程,包括虚拟机软件工具的使用方法;Linux镜像文件的安装、克隆、启动;Linux中的网络环境设置;Hadoop环境的搭建;Hive环境的搭建等内容。
项目3:Hive基本语法,主要介绍了Hive的常用数据类型、运算符与表达式、Hive的数据存储方式、常用的交互命令和其他操作命令。
项目4:Hive数据定义,主要介绍数据库、数据表、分区表、分桶表、视图、索引的创建、查看、修改和删除等操作。
项目5:数据的导入与导出,主要介绍通过直接加载、Load加载、查询加载、Import加载等方式导入数据,以及通过Insert命令、Hadoop命令、Hive Shell命令等方式导出数据的方法。
项目6:Hive数据查询,主要介绍Hive数据库的基本查询、条件查询、分组、连接、排序等语句,以及随机抽样查询等操作。
项目7:Hive函数,主要介绍了内置函数的应用,包括算术函数、聚合函数、日期时间函数、条件函数以及字符串函数,Hive其他常见函数以及自定义函数的应用。
项目8:Hive优化,主要介绍了本地模式、配置MapReduce压缩、配置Map和Reduce个数、合并小文件、聚合语句、连接语句、统计语句、行/列过滤等优化方式。
项目9:综合案例,通过对电商销售大数据的分析,综合应用前述所学知识完成Hive数据仓库的建库建表,以及完成各类电商数据的统计分析。
本教材主要面向高职高专大数据相关专业和其他有大数据应用需求的工科专业的初学者,也可作为大数据开发人员的参考书,使用本教材建议采用理论实践一体化教学模式。本教材还精心设计了9个思政小课堂,依据专业课程的特点,自然融入中华优秀传统文化、科学精神、职业素养和爱国情怀等元素。注重挖掘课程中的思政教育要素,弘扬精益求精的专业精神、职业精神和工匠精神,有意识地培养学生的创新精神。
本教材配备了微课、教学课件、源代码等学习资源,方便读者在课堂之外继续学习。本教材编写力求重点突出、难易适中,注重读者的应用能力的培养。
在本教材的成稿与出版过程中,出版社的编辑同志以高度负责的敬业精神,付出了大量的心血。还有很多同行及专家提出了许多的宝贵意见。在此,对所有提供过帮助的同志表示衷心的感谢!由于作者水平所限,书中难免有不妥之处,敬请各位读者与专家批评指正。
编 者
2024年7月
项目1 认识Hive / 1
任务1.1 认识数据仓库 / 1
任务1.2 认识Hive数据仓库 / 5
项目2 Hive环境搭建 / 10
任务2.1 搭建Linux环境 / 10
任务2.2 搭建Hadoop环境 / 29
任务2.3 搭建Hive三种部署模式 / 42
项目3 Hive基本语法 / 54
任务3.1 认识数据类型 / 54
任务3.2 认识运算符 / 58
任务3.3 认识Hive命令 / 67
任务3.4 存储数据 / 69
项目4 Hive数据定义 / 74
任务4.1 HiveQL操作数据库 / 75
任务4.2 HiveQL操作数据表 / 78
任务4.3 HiveQL操作分区表 / 88
任务4.4 HiveQL操作分桶表 / 92
任务4.5 HiveQL操作视图 / 94
任务4.6 HiveQL操作索引 / 97
项目5 数据的导入与导出 / 104
任务5.1 导入Hive数据 / 105
任务5.2 导出Hive数据 / 127
项目6 Hive数据查询 / 141
任务6.1 Hive基本查询 / 142
任务6.2 条件查询语句 / 144
任务6.3 分组操作 / 148
任务6.4 连接语句 / 150
任务6.5 排序操作 / 156
任务6.6 抽样查询 / 161
项目7 Hive函数 / 167
任务7.1 内置函数 / 167
任务7.2 其他常见函数 / 184
任务7.3 自定义函数 / 192
项目8 Hive优化 / 209
任务8.1 优化Hive参数 / 210
任务8.2 优化HiveQL / 219
项目9 综合案例 / 228
任务 电商销售大数据分析 / 228
参考文献 / 240