文章目录
一、实战概述
二、提出任务
- 学生表,包含五个字段(姓名、性别、年龄、手机、专业),有8条记录
姓名 | 性别 | 年龄 | 手机 | 专业 |
---|---|---|---|---|
李文丽 | 女 | 19 | 15892943440 | 大数据应用 |
张三丰 | 男 | 20 | 15890903456 | 人工智能应用 |
郑晓琳 | 女 | 18 | 18867890234 | 软件技术 |
唐宇航 | 男 | 22 | 15856577890 | 计算机应用 |
陈燕文 | 女 | 21 | 13956576783 | 软件技术 |
童安格 | 男 | 19 | 15889667890 | 大数据应用 |
肖雨涵 | 男 | 20 | 15857893452 | 软件技术 |
冯晓华 | 女 | 18 | 18856784560 | 大数据应用 |
三、完成任务
(一)准备数据
1、在虚拟机上创建文本文件
- 在master虚拟机上创建
student.txt
文件
2、上传文件到HDFS指定目录
- 创建
/sortstudent/input
目录,执行命令:hdfs dfs -mkdir -p /sortstudent/input
- 将文本文件
student.txt
上传到HDFS的/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对应的记录
- 进入MySQL,先执行
use metastore
命令
- 在MySQL的hive数据库的
TBLS
表里可以查看外部表t_student
对应的记录 select TBL_ID, DB_ID, TBL_NAME, TBL_TYPE from TBLS where TBL_NAME = 't_student';
- 查看学生表全部记录,执行语句:
select * from t_student;
4、利用Hive SQL实现按年龄降序排列
- 执行语句:
select * from t_student order by age desc;
四、拓展练习
任务:学生信息排序,先按性别升序,再按年龄降序
- 运行结果,如下图所示