Hive:DROP TABLE IF EXISTS <Table Name> 不释放内存

Hive: DROP TABLE IF EXISTS <Table Name> does not free memory

当我在配置单元中使用 DROP TABLE IF EXISTS <Table Name> 时,它没有释放内存。这些文件创建为 0000_n.bz2,并且它们仍在磁盘上。

我这里有两个问题:

1) 这些文件会随着每次插入而不断增长吗? 2) 是否有任何 DROP 等同于删除磁盘上的文件?

hive 中有两种类型的table。 Hive managed table:如果删除 hive managed table,HDFS 中的数据会自动删除。

外部 Table:如果删除外部 table,配置单元不会删除基础数据。

我相信你的是外置的table。

您可以做几件事:

  • 检查 table 是否为外部 table,在这种情况下,您需要在 HDFS 上手动删除文件,因为删除 tables 不会删除文件: hadoop fs -rm /HDFS_location/filename

  • 其次检查您是否在正确的数据库中。您需要在删除 table 之前发出使用数据库命令。该数据库应与创建 table 的数据库相同。

删除 table 如果存在 table_name 清除;

此命令还将从垃圾文件夹中删除数据文件,并且在 table 删除后无法恢复