• 2025年8月19日 星期二

H30505-实验7-Hive的安装与编程实践

4 月 22, 2023

本文分两个部分,第一个部分为Hive配置教程(因为XMU的配置教程有一些不完整,致使本人在配置Hive时走了一些弯路,在这里简单记录一下);第二个部分为广州商学院大数据应用技术课程实验7报告参考教程内容。

第一部分:Hive配置教程

1.如果您用的是本人发布的虚拟机,您可以直接如图1所示:从家目录直接获得hive安装文件,将其解压到/usr/local文件夹。

图1

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

图2

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

图3

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

图4

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

本文件可以从附件3下载,无需改动。

图5

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版本不兼容,操作命令也不相同)

图6(请确认此处的版本是8.0.11版本-可以在附件下载)
图7(请确认此处的版本是8.0.11版本-可以在附件下载)

7.使用service mysql start启动mysql服务。

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

图8

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

图9

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

图10

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

图11

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

图12

第二部分:广州商学院大数据应用技术课程实验7报告参考教程内容

一、实验目的

  1. 理解Hive作为数据仓库在Hadoop体系结构中的角色;
  2. 熟练使用常用的HiveSQL语句。

二、实验仪器设备或材料

  1. Ubuntu 20.0.4
  2. Hadoop 3.3.1
  3. Hive 3.1.2
  4. JDK 1.8.0_301
  5. Eclipse 2019-12(R)

三、实验原理

  1. Hive的工作原理
  2. Hive的基本操作
  3. 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所示。

图13

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

图14
图15

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

图16

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

图17

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

图18

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

图19
图20

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

图21

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

图22

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

图24
图25

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

图26
图27

附件下载

Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。