hive 中的location

hive

##官方注释
LOCATION一般与外部表(EXTERNAL)一起使用。一般情况下hive元数据默认保存在<hive.metastore.warehouse.dir>中。
EXTERNAL表指向其存储的任何HDFS位置,而不是存储在configuration属性指定的文件夹中hive.metastore.warehouse.dir
如:

CREATE EXTERNAL TABLE page_view (viewTime INT, 
     userid BIGINT,
     page_url STRING,
     referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User',
     country STRING COMMENT 'country of origination')
 COMMENT 'This is the staging page view table'
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
 STORED AS TEXTFILE
 **LOCATION** '<hdfs_location>';

自己虚拟机hive建表
hive版本号:2.1.1
指定 LOCATION建表,建表语句:

Create external table orders(orderID INT,
CustID INT,
OrderTotal FLOAT, 
OrderNumItems INT, 
OrderDesc STRING)
row format 
delimited FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE 
LOCATION '/my/path/to/csv'
tblproperties ("skip.header.line.count"="1");

创建成功
查看hdfs有无此路径

在这里插入图片描述
路径存在!
查看默认元数据目录是否存在此表:
在这里插入图片描述
默认元数据目录什么也没有。

不指定 LOCATION建表,语句如下:

Create external table orders_no_location(orderID INT,
CustID INT,
OrderTotal FLOAT, 
OrderNumItems INT, 
OrderDesc STRING)
row format 
delimited FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE 
tblproperties ("skip.header.line.count"="1");

创建成功!
查看元数据目录:
在这里插入图片描述
默认元数据目录出现此表!
查看之前修改的位置:
在这里插入图片描述
还是之前建立指定的位置

总结:LOCATION修改hive表元数据默认存储位置。
默认存储:hive.metastore.warehouse.dir

注意:
这个字段的适用场景是:数据已经存在HDFS上不能移动位置了,那么就通过这个字段让表可以直接读到这份数据。另外,要注意建表的时候,应该让表变成外部表。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值