一、实验目的
二、实验内容
- 完成Hive安装与配置
- 掌握Hive基本操作(启动、退出、create、show等)
- 使用Hive shell指令创建表
三、实验步骤
(一)完成Hive安装与配置
介绍MySQL
为Hive
做的设置
1.使用root
用户登录MySQL
数据库;
mysql -uroot -p123123 -h127.0.0.1
2.创建数据库实例hiveDB
;
create database hiveDB;
3.创建用户bee
,密码为123123
;
create user 'bee'@'%' identified by '123123';
4.授权用户bee
拥有数据库实例hiveDB
的所有权限;
grant all privileges on hiveDB.* to 'bee'@'%' identified by '123123';
5.刷新系统权限表。
flush privileges;
hive-env.sh
由于Hive
是一个基于Hadoop
分布式文件系统的数据仓库架构,主要运行在 Hadoop
分布式环境下,因此,需要在文件hive-env.sh
中指定Hadoop
相关配置文件的路径,用于Hive
访问HDFS
(读取fs.defaultFS
属性值)和 MapReduce
(读取mapreduce.jobhistory.address
属性值)等Hadoop
相关组件。
- 如果目录下没有该文件,我们就以模板复制一个
cp hive-env.sh.template hive-env.sh
。vi hive-env.sh
打开文件,在文件末尾添加变量指向 Hadoop 的安装路径:HADOOP_HOME=/usr/local/hadoop #在本地环境安装,要根据自己hadoop的路径来确定
至此Hive
配置完成。 第一次启动Hive
前还需要执行初始化命令:
schematool -dbType mysql -initSchema。
(二)使用Hive shell指令创建表
Hive Shell 常用命令
注意:Hive
命令必须以分号;
结束。
- 启动 Hive Shell:
hive
;
出现hive>
说明启动成功。
- 查询数据库:
show databases;
;
- 查询表:
show tables;
;
因为该数据库下没有创建表,所以输出结果为0
行。
- 创建数据库
mydb
:create database mydb;
;
- 删除数据库
mydb
:drop database mydb;
; - 创建表
mytable
,有id
字段,数据类型为int
:create table mytable(id int);
- 删除表
mytable
:drop table mytable;
; - 退出 Hive Shell:
exit;
。
Hive Shell 非交互式运行
我们也可以不启动Hive Shell
,直接在Linux
的命令行操作Hive
。
hive -e 'show databases;'
;
在Hive
的交互式模式和非交互式模式下,执行HiveQL
操作都会输出执行过程信息,如执行查询操作所用时间,通过指定-S
选项可以禁止输出此类信息。
hive -S -e 'show databases;'
。
编程要求
在Hive Shell
下创建一个表student
,表结构如下:
col_name |
data_type |
id |
int |
name |
string |
age |
int |
相关代码:
1. 1. create table student(id int, 2. 2. name string, 3. 3. age int);
四、实验心得
掌握了Hive基本操作
会使用Hive shell指令创建表