hadoop – 当托管(非外部)表被删除时,hdfs上的Hive文件不被删除

当我从Hive交互式命令行中删除托管表时,在/user/hive/warehouse/\u0026lt;
databasename\u0026gt;.db中的hdfs上创建的基础文件仍然存在.当我重新创建具有相同名称的表并尝试执行时,这会导致问题

INSERT INTO TABLE 

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

INSERT OVERWRITE TABLE

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

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

最佳答案 有时,Hive会删除表元数据,但无法将文件移动到废纸篓.你有没有检查过/user/\u0026lt;user\u0026gt;/.Trash的权限?确保ETL用户具有此文件夹的适当权限.

点赞