Hive归档分区

Hadoop中有一种存储格式名为Har, 也就是Hadoop Archive(Hadoop归档文件)的简写. 一个HAR文件就想再HDFS文件系统中一个Tar文件一样是一个单独的文件. 不够其内部可以存放多个文件和文件夹. 在一些使用场景下, 较旧的文件夹和文件比较新的文件夹和文件访问概率要低很多. 如果某个特定分区下保存的成千上万的话,那么就需要 hdfs中的NameNode消耗非常大的代价来管理这些文件 . 通常将分区下的文件归档成一个巨大的, 但是同时可以被Hive访问的文件, 可以减轻NameNode的压力. 不过缺点是, HAR文件查询效率不高, 同时, HAR文件并非是压缩的. 因此也不会节约存储空间.

实例:

// 开始归档

set hive.archive.enabled=true;

// 将某一个分区进行归档 (归档后数据还是可以正常访问的)

alter table test_archive archive partition(dt='20190806');

归档后结果:

 

然后我们可以使用unarchive 进行解归档

alter table test_archive unarchive partition(dt='20190806')

恢复归档结果:

 

注意: 归档相当于将文件进行打包, 但是并不是对其进行压缩. 存储空间还是不变的. 文件还是能够正常访问的.

可以使用此方法来管理小文件;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值