前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive 跨文件系统存储数据

Hive 跨文件系统存储数据

原创
作者头像
蕾崽
修改2023-11-20 15:41:12
2310
修改2023-11-20 15:41:12
举报
文章被收录于专栏:大数据生态大数据生态

说明

本文操作基于 弹性 MapReduce(EMR)

知识储备

Hive指定表的存储路径: hive可以在创建表的时候通过location指定表的存储路径,若不指定localtion则文件默认存储在hive-site.xml配置文件中hive.metastore.warehouse.dir配置项指向的路径。 此外,Hive的分区表还可以指定分区的存储路径。通过如下语句可以给分区指定:

1. 添加分区并指定location。例如:

代码语言:javascript
复制
alter table test add partition (b=1) location 'path_to_dir';

2. 修改已有分区的location。例如:

代码语言:javascript
复制
alter table test partition (b=1) set location 'path_to_dir';

使用场景

分区表可以是外表也可以是内表。实际业务场景中常常将时间列作为分区的依据,时间久远的历史数据是冷数据,而新数据是热数据。可能有以下几个原因希望将部分数据存储到cos上:

  1. 历史数据一般很少修改,很适合放在cos上(读取性能更优),且cos比hdfs更经济。
  2. hdfs的存储的数据太多容易导致datanode进程挂掉。

实操过程

1. hive建表

代码语言:javascript
复制
create table test (a int) partitioned by (b int);

2. 添加分区

代码语言:javascript
复制
alter table test add partition (b=1) location 'cosn://qiushan-1314/hive/test/b=1'

3. 插入数据

代码语言:javascript
复制
insert into test partition (b=1) values (1);
insert into test partition (b=1) values (2);
insert into test partition (b=1) values (3);

发现此处插入的数据仍存储在hdfs上

代码语言:javascript
复制
“Moving data to directory hdfs://HDFS3758/hive/test/b=1/.hive-staging_hive_2019-08-28_15-11-56_214_8585498400588849067-1/-ext-10000
Loading data to table default.test partition (b=1)”

4. 修改分区地址

代码语言:javascript
复制
alter table test partition (b=1) set LOCATION 'cosn://qiushan-1314/hive/test/b=1'

5. 迁移分区数据

代码语言:javascript
复制
hadoop distcp /usr/hive/warehouse/test/b=1 cosn://qiushan-1314/hive/tes

6. 删除hdfs上分区数据

代码语言:javascript
复制
hadoop fs -rm -r /usr/hive/warehouse/test/b=1

7. 查询分区数据

代码语言:javascript
复制
select * from test where b = 1;

缺陷

  1. insert操作可以成功执行,但数据依然存储在表的location指向的目录下;
  2. load操作无法执行
代码语言:javascript
复制
Failed with exception Wrong FS: cosn://qiushan-1314/hive/test/b=1, expected: hdfs://10.10.10.10:4007

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

邀请人:岳涛,社区ID:7348459

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 知识储备
  • 使用场景
  • 实操过程
  • 缺陷
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档