一、实战概述
在这个实战中,我们将使用Apache Hive作为数据仓库工具来对存储在HDFS上的学生信息表进行排序操作。下面是详细的步骤:
-
创建并上传学生表数据至HDFS:首先,创建一个包含8条记录的学生表数据,每条记录包含姓名、性别、年龄、手机和专业五个字段。然后,将这些数据上传到HDFS的指定目录。
-
启动Hive Metastore服务与客户端:启动Hive Metastore服务,该服务用于存储Hive的元数据信息。然后,启动Hive客户端,以便我们可以与Hive交互。
-
建立外部表t_student:基于HDFS上的文本文件,我们可以通过Hive SQL语句创建一个外部表t_student,该表可以直接在Hive中访问HDFS上的数据。
-
进行数据查询与排序:使用Hive SQL进行数据查询与排序。首先,我们可以按照年龄降序排列学生信息,以展示Hive在处理大规模结构化数据方面的能力。此外,我们还可以进行更复杂的排序需求,例如按照性别升序再按照年龄降序排序学生信息。
通过完成以上步骤,您将能够深入理解并掌握Hive在大数据处理场景中的应用,特别是在数据查询、分析与排序方面的功能与优势。
二、提出任务
- 使用Hive计算框架,学生信息按年龄降序排列结果
姓名 | 性别 | 年龄 | 手机 | 专业 |
---|---|---|---|---|
李文丽 | 女 | 19 | 15892943440 | 大数据应用 |
张三丰 | 男 | 20 | 15890903456 | 人工智能应用 |
郑晓琳 | 女 | 18 | 18867890234 | 软件技术 |
唐宇航 | 男 | 22 | 15856577890 | 计算机应用 |
陈燕文 | 女 | 21 | 13956576783 | 软件技术 |
童安格 | 男 | 19 | 15889667890 | 大数据应用 |
肖雨涵 | 男 | 20 | 15857893452 | 软件技术 |
冯晓华 | 女 | 18 | 18856784560 | 大数据应用 |
三、完成任务
(一)准备数据
- 启动hadoop服务
1、在虚拟机上创建文本文件
- 创建
sortstudent
目录,在里面创建student.txt
文件
2、上传文件到HDFS指定目录
-
创建
/sortstudent/input
目录,执行命令:hdfs dfs -mkdir -p /sortstudent/input
-
将文本文件
student.txt
,上传到HDFS的/sortstudent/input
目录,执行命令:hdfs dfs -put student.txt /sortstudent/input
(二)实现步骤
1、启动Hive Metastore服务
- 执行命令:
hive --service metastore &
,在后台启动metastore
服务
2、启动Hive客户端
- 执行命令:
hive
,看到命令提示符hive>
3、基于HDFS数据文件创建Hive外部表
-
创建外部表
t_student
-
执行命令:
create external table t_student ( name string, gender string, age int, phone string, major string ) row format delimited fields terminated by ' ' location '/sortstudent/input';
-
在MySQL的
hive
数据库的TBLS
表里可以查看外部表t_student
对应的记录
-
查看学生表全部记录,执行语句:
select * from t_student;
4、利用Hive SQL实现按年龄降序排列
- 执行语句:
select * from t_student order by age desc;
四、拓展练习
任务:学生信息排序,先按性别升序,再按年龄降序