蜂巢:删除数据库

时间:2019-07-02 09:21:25

标签: hadoop hive

我需要在蜂巢中放置一个大型数据库,但找不到here来跳过垃圾的选项,就像purge那样用于删除表。当为垃圾箱应用空间配额时,这可能会带来麻烦!

任何仅使用蜂巢DDL命令的建议吗?

要明确:

我做什么:

Drop database <my_db> cascade;

我正在寻找什么或类似的东西

Drop database <my_db> cascade purge;

3 个答案:

答案 0 :(得分:2)

hive-default.xml

<property>
<name>hive.warehouse.data.skipTrash</name>
<value>true</value>
<description>
Set this to true if you do not want table data to be moved to trash while dropping table.
</description>
</property>

默认情况下,此设置为false。 此属性适用于Hive 0.14.0或更高版本。

答案 1 :(得分:1)

也许您应该在删除数据库之前找到数据路径并删除它。

以下是命令:

$ hadoop fs -rm -r -skipTrash <data_path>

答案 2 :(得分:1)

存储在磁盘上的HDFS数据和Hive元存储中的表定义是不同的实体。正如@congyh所建议的那样,您可以使用hadoop fs -rm -r -skipTrash <data_path>drop db.table;手动删除HDFS目录中的数据。从Hive 0.11.0开始,还可以截断表(删除HDFS数据),然后再将其从元商店。正如@Lovish saini所建议的那样,在直线的CLI会话中:

set hive.warehouse.data.skipTrash=true; truncate table db.table; drop table db.table;