【发布时间】:2016-05-26 06:15:43
【问题描述】:
如何以简单的方式恢复分区。这是场景:
- 在现有外部表“t”上有“n”个分区
- 删除表't'
- 重新创建表 't'// 注意:同一个表,但排除了某些列
- 如何恢复步骤 #1 中表“t”存在的“n”个分区?
我可以通过编写一些脚本手动更改表以添加“n”分区。但这非常乏味。有没有内置的东西可以恢复这些分区?
【问题讨论】:
标签: hive hdfs hql hadoop-partitioning
如何以简单的方式恢复分区。这是场景:
- 在现有外部表“t”上有“n”个分区
- 删除表't'
- 重新创建表 't'// 注意:同一个表,但排除了某些列
- 如何恢复步骤 #1 中表“t”存在的“n”个分区?
我可以通过编写一些脚本手动更改表以添加“n”分区。但这非常乏味。有没有内置的东西可以恢复这些分区?
【问题讨论】:
标签: hive hdfs hql hadoop-partitioning
当分区目录仍然存在于 HDFS 中时,只需运行以下命令:
MSCK REPAIR TABLE table_name;
它根据表目录中存在的内容将分区定义添加到元存储。
【讨论】:
元数据不会保存在垃圾箱中,会被永久删除;您将无法恢复删除的表、分区等的元数据。参考:http://www.cloudera.com/documentation/archive/cdh/4-x/4-7-1/CDH4-Installation-Guide/cdh4ig_hive_trash.html
【讨论】: