Hive分区修复命令MSCK介绍与使用

本文介绍了在Hive中,当通过cp或mv命令手动移动数据到分区表后,如何使用MSCK REPAIR TABLE命令一次性批量添加所有分区到元数据,避免手动逐个添加的繁琐操作。MSCK命令会检查HDFS中未跟踪的分区并将其添加到元数据。从Hive 1.3开始,如果发现目录名包含不允许的字符,MSCK会抛出异常,可以通过设置hive.msck.path.validation来调整行为。
摘要由CSDN通过智能技术生成

我们在使用Hive的时候肯定遇到过建立了一张分区表,然后手动(比如使用 cp 或者 mv )将分区数据拷贝到刚刚新建的表作为数据初始化的手段;但是对于分区表我们需要在hive里面手动将刚刚初始化的数据分区加入到hive里面,这样才能供我们查询使用,我们一般会想到使用 alter table add partition 命令手动添加分区,但是如果初始化的分区太多,这样一条一条地手动添加分区不免过于麻烦(虽然我们可以写个脚本生成添加分区的命令)。今天我将给大家介绍的命令可以只使用一次即可添加全部的分区,如下:

MSCK REPAIR TABLE table_name; 

运行上面的命令后,Hive会检测HDFS目录下存在但表的metastore中不存在的partition元信息,然后更新到metastore中。官方文档对其的描述如下:
Hive stores a list of partitions for each table in its metastore. If, however, new partitions are directly added to HDFS (say by using hadoop fs -put command), the metastore (and hence Hive) will not be aware of these partitions unless the user runs ALTER TABLE table_name ADD PARTITION commands on each of the newly added partitions.
However, users can run a metastore check command with the repair table option:

MSCK REPAIR TABLE table_name;
whic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sisi.li8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值