我需要在蜂巢中放置一个大型数据库,但找不到here来跳过垃圾的选项,就像purge
那样用于删除表。当为垃圾箱应用空间配额时,这可能会带来麻烦!
任何仅使用蜂巢DDL命令的建议吗?
要明确:
我做什么:
Drop database <my_db> cascade;
我正在寻找什么或类似的东西
Drop database <my_db> cascade purge;
答案 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;