实验2Hive数据定义
实验目的及要求
-
了解Hive的基本操作。
-
了解Hive的内部表与外部表的区别。
实验系统环境及版本
-
Linux Ubuntu 20.04
-
JDK1.8
-
Hadoop3.1.0
-
MySQL8.0.28
-
Hive3.1.2
实验任务
-
数据仓库的创建与删除。
-
内部表和外部表的创建、修改、删除。
实验内容及步骤
-
实验环境准备和启动
-
输入jps检查Hadoop相关进程,查看是否已经启动。若未启动,切换到/usr/local/hadoop目录下,启动Hadoop。
jps
cd /usr/local/hadoop
./sbin/start-all.sh
3.启动Hive。切换到/opt/hive目录下,开启Hive。
cd /opt/hive
./bin/hive
4.Hive数据仓库的操作
在Hive中创建一个数据仓库,名为hive_DWH:
create database hive_DWH;
在Hive中查询数据仓库:
show databases;
在创建数据仓库时,应避免新建的库名与已有库名重复,可以加上if not exists关键字。
create database if not exists hive_DWH_1;
切换数据仓库hive_DWH:
use hive_DWH;
查看数据仓库hive_DWH的详细信息:
desc database hive_DWH;
删除数据仓库hive_DWH_1:
drop database hive_DWH_1;
5.Hive数据表的操作
查看已存在的表:
show tables;
创建一个名为test的内部表,有两个字段,分别为test_id和test_name,数据类型分为Int和String:
create table test(test_id int,test_name string)
row format delimited fields terminated by ‘\t’;
再创建一次与刚才表名相同的表,看一下报错信息:
create table test(test_id int,test_name string)
row format delimited fields terminated by ‘\t’;
提示错误,该表已经存在!说明表与数据仓库一样,名称不能重复,解决方法是加入if not exists关键字。
创建一个外部表,表名为test2,有两个字段,分别为test_id和test_name,数据类型分为Int和String:
create external table if not exists test2(test_id int,test_name string)
row format delimited fields terminated by ‘\t’;
修改test表的表结构,对test表添加两个字段group_id和test_code:
alter table test add columns(group_id string,test_code string);
查看添加字段后的test表结构:
desc test;
修改test2表的表名,把test2表重命名为test3:
alter table test2 rename to test3;
删除名为test3的表并查看:
drop table test3;
show tables;
创建与已有表相同结构的表。创建一个与test表结构相同的表,名为test4,这里要用到like关键字:
create table test4 like test;
表创建完成并查看结果:
show tables;