hadoop - 删除托管(非外部)表时,不会删除 hdfs 上的配置单元文件

标签 hadoop hive hdfs

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

INSERT INTO TABLE 

因为它仍然包含我在最初运行时加载到这些分区(在我的例子中是 dt 和 hr 分区)的数据。只有当我使用

INSERT OVERWRITE TABLE

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

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

最佳答案

有时,Hive 会删除表元数据,但不会默默地将文件移至回收站。你检查过/user/<user>/.Trash的权限了吗? ?确保 ETL 用户对此文件夹具有适当的权限。

关于hadoop - 删除托管(非外部)表时,不会删除 hdfs 上的配置单元文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114597/

相关文章:

hadoop - Sqoop 创建配置单元表错误-运行创建表作业时遇到 IOException

hadoop - 映射减少事件时,有没有办法打开Unix命令?

linux - 使用Cloudera服务重新启动hadoop CDH4的tasktracker和job tracker

hadoop - Presto查询引发错误-执行SELECT时StageStateMachine NullPointer *

hadoop流式处理工作流多个文件

python - AWS 胶水 : How to expand nested Hive struct to Dict?

hadoop - 带 append 功能的 HDFS 是如何工作的

hadoop hdfs 目录大小显示为 0

linux - Hadoop(NameNode、DataNode 和 SecondaryNameNode)未启动

python - 以文本文件和 oracle 表为源的 Hive、Pig 或 Python Mapreduce 哪个能提供最佳性能?