本文分两个部分,第一个部分为Hive配置教程(因为XMU的配置教程有一些不完整,致使本人在配置Hive时走了一些弯路,在这里简单记录一下);第二个部分为广州商学院大数据应用技术课程实验7报告参考教程内容。
第一部分:Hive配置教程
1.如果您用的是本人发布的虚拟机,您可以直接如图1所示:从家目录直接获得hive安装文件,将其解压到/usr/local文件夹。

2.切换到解压路径下,将解压获得的文件夹更改名称,并赋予hadoop用户权限,操作命令如图2所示。

3.在~/.bashrc文件中添加属于hive的环境变量,因为本教程接续上一个实验,所以只需要更改如图3所示的两个地方即可。

4.切换到hive配置路径下,应用默认配置模板文件,并新建立hive-site.xml配置文件,如图4所示。

5.在配置文件中录入如图5所示内容。注意:此处可以添加关闭SSL连接和设置允许公钥检索,可以减少hive启动时的WARNING警告。
本文件可以从附件3下载,无需改动。

6.请注意,此处实际并非图中步骤,请以文本内容为准!图片仅供参考!将附件2下的mysql-connector-java-8.0.11.tar.gz解压,将获得的jar包复制到hive库文件夹,解压和复制命令与图6-图7同理,再次提醒:不是图中的5.1.40版本,是8.0.11版本!(为什么?因为本机安装的是mysql-server8.0.33版本,mysql的8.0和5.0版本不兼容,操作命令也不相同)。


7.使用service mysql start启动mysql服务。
8.启动完成后,使用sudo mysql -u root -p(然后按两下回车)登录mysql交互界面,成功登录的结果如图8所示。

9.此处因为是mysql8.0版本,授权用户与XMU的mysql5.0命令不相同,如果您的mysql是8.0,以此为准!创建hive用户,并授权其可以访问所有数据库和所有数据表,完成授权后,使用flush刷新权限,操作命令如图9所示。

10.同样也是因为新版的缘故,在使用jdbc连接的时候,5.0版本已经不适用,需要在hadoop文件夹下的库中找到guava-27.0-jre.jar文件,复制到hive文件夹下的库中,并将hive文件夹下的guava-19.0.jar删除,hive才可以正常运行。(这里也走了一个弯路)如图10所示。

11.使用schematool初始化hive,如图11所示。

12.完成初始化后,在终端输入hive即可启动hive,使用show databases;可以查看hive中的数据库,如图12所示,存在一个名为“default”的数据库。

第二部分:广州商学院大数据应用技术课程实验7报告参考教程内容
一、实验目的
- 理解Hive作为数据仓库在Hadoop体系结构中的角色;
- 熟练使用常用的HiveSQL语句。
二、实验仪器设备或材料
- Ubuntu 20.0.4
- Hadoop 3.3.1
- Hive 3.1.2
- JDK 1.8.0_301
- Eclipse 2019-12(R)
三、实验原理
- Hive的工作原理
- Hive的基本操作
- Hive的基本操作
create:创建数据库、表、视图
drop:删除数据库、表、视图
alter:修改数据库、表、视图
show:查看数据库、表、视图
describe:描述数据库、表、视图
load:向表中转载数据
select:查询表中的数据
四、实验内容与步骤
1.准备:Hive
(1)下载
(2)安装
(3)配置PATH
(4)配置Hive
2.准备:MySQL
(1)安装
(2)测试
(3)JDBC驱动
3.启动Hive
(1)MySQL为Hive创建数据库
(2)MySQL允许Hive接入
(3)启动Hive
(4)可能问题
(5)退出Hive、Hadoop
4.作业
(1)创建内部表
(2)创建外部分区表
(3)从stock.csv文件向stocks表导入数据
(4)创建未分区外部表
(5)为dividends表插入数据
下方作业涉及的数据集可以在附件1获取。
(6)查询IBM(symbol=IBM)从2000年期所有支付股息的交易日的收盘价(price_close)
(7)查询苹果公司在2008年10月每个交易日的涨跌情况
(8)查询stocks表的收盘价比开盘价(price_open)高得最多的那条记录的相关信息18
(9)查询stocks表的苹果公司年平均调整后收盘价(price_adj_close)
(10)查询每年年平均调整后收盘价(price_adj_close)前3名的公司
五、实验结果与分析
(1)创建内部表,命令如图13所示。

(2)创建外部分区表,并查看外部分区表的信息,命令如图14-图15所示。


(3)从stock.csv文件向stocks表导入数据(截图为从dividends.csv向dividends表导入数据,同理),命令如图16所示。

(4)创建未分区外部表,命令如图17所示。

(5)为dividends表插入数据,此处需要开启动态分区功能,并允许所有分区字段都可以使用设置动态分区,然后将最大可创建动态分区数设置为1000(其实只要大于365就可以了),命令如图18所示。

(6)查询IBM(symbol=IBM)从2000年期所有支付股息的交易日的收盘价(price_close),数据库查询命令如图19所示,结果如图20所示。(因数据集中找不到IBM的字段信息,故本教程使用IBCPO字段代替)


(7)查询苹果公司在2008年10月每个交易日的涨跌情况:数据库查询命令和结果如图21所示。

(8)查询stocks表的收盘价比开盘价(price_open)高得最多的那条记录的相关信息,数据库查询命令和结果如图22所示。

(9)查询stocks表的苹果公司年平均调整后收盘价(price_adj_close)数据库查询命令如图24所示,结果如图25所示。


(10)查询每年年平均调整后收盘价(price_adj_close)前3名的公司,数据库查询命令如图26所示,结果如图27所示。

