实验十一 Hive实验:新建Hive表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Will_cruise/article/details/88813128

实验指导:

11.1 实验目的

1. 学会创建Hive的表;

2. 显示Hive中的所有表;

3. 显示Hive中表的列项;

4. 修改Hive中的表并能够删除Hive中的表。

11.2 实验要求

1. 要求实验结束时;

2. 每位学生均能够完成Hive的DDL操作;

3. 能够在Hive中新建,显示,修改和删除表等功能。

11.3 实验原理

Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。

Hive中所有的数据都存储在HDFS中,Hive中包含以下数据模型:表(Table),外部表(External Table),分区(Partition),桶(Bucket)。

Hive中Table和数据库中 Table在概念上是类似的,每一个Table在Hive中都有一个相应的目录存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是在hive-site.xml中由${hive.metastore.warehouse.dir}指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。

11.4 实验步骤

11.4.1 启动Hive

启动Hive命令行。

[root@master ~]# cd /usr/cstor/hive/
[root@master hive ]# bin/hive

11.4.2 创建表

默认情况下,新建表的存储格式均为Text类型,字段间默认分隔符为键盘上的Tab键。

创建一个有两个字段的pokes表,其中第一列名为foo,数据类型为INT,第二列名为bar,类型为STRING。

hive> CREATE TABLE pokes (foo INT, bar STRING) ;

创建一个有两个实体列和一个(虚拟)分区字段的invites表。

hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING) ;

注意:分区字段并不属于invites,当向invites导入数据时,ds字段会用来过滤导入的数据。

11.4.3 显示表

显示所有的表。

hive> SHOW TABLES ;

显示表(正则查询),同MySQL中操作一样,Hive也支持正则查询,比如显示以.s结尾的表。

hive> SHOW TABLES '.*s';

11.4.4 显示表列

hive> DESCRIBE invites;

11.4.5 更改表

修改表events名为3koobecaf (自行创建任意类型events表):

hive> ALTER TABLE events RENAME TO 3koobecaf;

将pokes表新增一列(列名为new_col,类型为INT):

hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);

将invites表新增一列(列名为new_col2,类型为INT),同时增加注释“a comment”:

hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');

替换invites表所有列名(数据不动):

hive> ALTER TABLE invites REPLACE COLUMNS (foo INT, bar STRING, baz INT COMMENT 'baz replaces new_col2');

11.4.6 删除表(或列)

删除invites表bar 和 baz 两列:

hive> ALTER TABLE invites REPLACE COLUMNS (foo INT COMMENT 'only keep the first column');

删除pokes表:

hive> DROP TABLE pokes;

11.5 实验结果

上述实验步骤的结果如下图所示:

创建一个有两个字段的pokes表,如图11-1所示。

图11-1

创建一个有两个实体列和一个(虚拟)分区字段的invites表,如图11-2所示。

图11-2

显示所有的表,如图10-3所示。

图11-3

以.s结尾的表,如图11-4所示。

图11-4

显示表列,如图11-5所示。

图11-5

修改表events名为3koobecaf (自行创建任意类型events表),如图11-6所示。

图11-6

将pokes表新增一列(列名为new_col,类型为INT),如图11-7所示。

图11-7

将invites表新增一列(列名为new_col2,类型为INT),如图11-8所示。

图11-8

替换invites表所有列名,如图11-9所示。

图11-9

删除invites表bar 和 baz 两列,如图11-10所示。

图11-10

删除pokes表,如图11-11所示。

图11-11

实验操作:

步骤1:搭建Hive集群

1.配置集群免密

vi /etc/hosts

ssh

ssh-keygen

ssh-copy-id X(X是包括master、Slave1~4在内的机器)

2.配制Hive环境

进入Hive的配置文件夹conf目录下,接着将Hive的环境变量模板文件复制成环境变量文件。

[root@client~]# cd /usr/cstor/hive/conf
[root@client conf]# cp hive-env.sh.template hive-env.sh
[root@client conf]# vim hive-env.sh

在配置文件中加入以下语句:

HADOOP_HOME=/usr/cstor/hadoop

在HDFS中新建/tmp 和 /usr/hive/warehouse 两个文件目录,并对同组用户增加写权限。

[root@client hadoop]# bin/hadoop fs -mkdir /tmp
[root@client hadoop]# bin/hadoop fs -mkdir -p /usr/hive/warehouse
[root@client hadoop]# bin/hadoop fs -chmod g+w /tmp
[root@client hadoop]# bin/hadoop fs -chmod g+w /usr/hive/warehouse

3.启动Hive命令行。

[root@master ~]# cd /usr/cstor/hive/
[root@master hive ]# bin/hive

步骤2:使用Hive创建表

步骤3:使用Hive修改表

步骤4:使用Hive删除表

猜你喜欢

转载自blog.csdn.net/Will_cruise/article/details/88813128