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 删除后无法恢复
当我在配置单元中使用 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 删除后无法恢复