【问题标题】:Is it OK to manually delete partition directories of hive tables from HDFS w/o dropping the partitions是否可以从 HDFS 手动删除配置单元表的分区目录而不删除分区
【发布时间】:2021-03-09 14:58:17
【问题描述】:

假设我有一个分区的配置单元表

>show partitions db.my_table;
+----------------------------------+
|             partition            |
+----------------------------------+
|        in_date=20-09-2020        |
|        in_date=21-09-2020        |
|        in_date=22-09-2020        |
+----------------------------------+

如果我手动从 HDFS 中删除分区目录

$hadoop fs -rm -r 'path/to/table/in_date=20-09-2020';

但不要从 hive 表中删除分区

它会导致任何真正的问题(除了表元数据中有孤立的分区名称)吗?

我已验证的内容

hive 表查询工作正常(对于外部和内部表)

>select * from db.my_table;   --works fine
>show partitions db.my_table  --shows orphaned partitions,not a real problem

编辑:Aggergate 函数查询,如 COUNT()、MAX() 等失败并出现错误
        输入路径不存在:path/to/table/in_date=20-09-2020

有谁知道这是否会导致其他问题/破坏其他应用程序?

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    在 Tez 上,它会导致 FileNotFound 异常,因为分区元数据存在且文件夹不存在。删除分区:ALTER TABLE DROP PARTITION(in_date='20-09-2020')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多