删除托管(非外部)表时未删除hdfs上的Hive文件

时间:2013-11-21 07:09:36

标签: hadoop hive hdfs

当我从Hive交互式命令行中删除托管表时,在/user/hive/warehouse/<databasename>.db中的hdfs上创建的基础文件仍然存在。当我重新创建具有相同名称的表并尝试执行

时,这会导致问题
INSERT INTO TABLE 

因为它仍然包含我在初始转载时加载到这些分区(在我的情况下为dt和hr分区)中的数据。只有我使用

INSERT OVERWRITE TABLE

然后它会最终正确加载数据,但我的ETL需要使用INSERT INTO TABLE

有什么想法吗?我准备创建相同的表,但使用不同的名称,或者只是进入并删除hdfs上的内容,但我担心这是否会破坏Metastore或其他东西。最后,我很肯定它是一个托管表而不是外部表。

1 个答案:

答案 0 :(得分:2)

有时Hive会删除表元数据,但是无法将文件移动到废纸篓。您是否检查了/user/<user>/.Trash的权限?确保ETL用户具有此文件夹的适当权限。