直接用hadoop命令复制删除hive存储数据后,需要add partition或alter来同步源数据信息,否则drop表等操作时会查询元数据metastore,查到metastore信息和hdfs信息不一致,会报错。这个也可算是hive的bug,尚未修复,但也可以理解为初衷不建议直接操作hdfs数据。
目前,可以采用命令:
目前,可以采用命令:
- MSCK REPAIR TABLE table_name;
该命令会把没添加进partition的数据,都增加对应的partition。同步源数据信息metadata。
Recover Partitions
Hive在metastore中存储每个表的分区列表,如果新的分区加入HDFS后,metastore不会注意这些分区,除非
ALTER TABLE table_name ADD PARTITION
当然可以通过
MSCK REPAIR TABLE table_name;
类似EMR版本中的如下命令
ALTER TABLE table_name RECOVER PARTITIONS;