【问题标题】:how to skip Trash while dropping partition from Managed Tables using alter drop partition command如何在使用 alter drop partition 命令从托管表中删除分区时跳过垃圾箱
【发布时间】:2013-04-30 13:48:36
【问题描述】:

在使用以下命令从 Hive 中的托管表删除分区时,是否有任何方法可以跳过垃圾箱?

ALTER TABLE <table> DROP PARITION (<partition_name>)

类似于我们使用 hadoop fs 命令删除文件时的操作,例如 hadoop fs -rmr -skipTrash

【问题讨论】:

    标签: hadoop hive hdfs


    【解决方案1】:

    试试这套。

    SET hive.warehouse.data.skiptrash=true;

    【讨论】:

      【解决方案2】:

      No you can't 使用当前可用的 hive 版本执行此操作。数据总是被移到垃圾箱,元数据永远丢失。

      但是,默认情况下,垃圾箱应配置为在一天后删除数据。我想这在大多数情况下应该没问题。

      【讨论】:

      • 在我们的例子中,删除量很大,超过了限制。能否请您帮助我们如何提高这一点
      【解决方案3】:

      如果有帮助,这里有一个用于在删除表时跳过垃圾的补丁。

      https://issues.apache.org/jira/browse/HIVE-6469 它尚未被 hive 社区接受,但该补丁应该适用于 HIVE-0.12 没有任何问题。 HIVE-0.13 和主干的补丁也将在那里。 希望有帮助。

      【讨论】:

      • Hive 1.2 支持 PURGE 选项以跳过垃圾:cwiki.apache.org/confluence/display/Hive/…
      • 是的,这个补丁是用 HIVE-7100 重新定位的,它把这个功能重命名为 PURGE,不知何故,hive 社区认为遵循 ORACLE 命名约定而不是 Hadoop :)
      【解决方案4】:

      试试:

      ALTER TABLE tablename DROP IF EXISTS PARTITION partionspec PURGE
      

      【讨论】:

        猜你喜欢
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多