【问题标题】:HIVE : External Table - how do you clean-up the files in loaded in the user/hive/warehouse/db/table directoryHIVE:外部表 - 你如何清理加载在 user/hive/warehouse/db/table 目录中的文件
【发布时间】:2017-07-06 20:07:55
【问题描述】:

根据文档,当我们在HIVE中创建EXTERNAL表,然后DROP表时,元数据更新了,HDFS目录/user/hive/warehouse//>中加载的数据还存在吗?

我有两个问题: 1、如何清理/user/hive/warehouse//>中的文件? 2.当我再次尝试创建表时,文件同名但数据不同,HIVE仓库文件没有更新 应该吗?? (我问这个是因为我不确定这是设置问题还是预期行为)

【问题讨论】:

  • 投票结束。在一个帖子中只问一个问题。附:您的第二个查询非常不清楚。

标签: json hive cloudera-cdh


【解决方案1】:

Hive 不在仓库目录中存储(管理)EXTERNAL 表的任何数据文件。它仅将这些表的元数据存储在 Metastore 中。

这是 Hive 内部(托管)表和外部表之间的主要区别。内部表拥有数据,外部表只有知道

更详细的解释here

【讨论】:

    【解决方案2】:

    要删除EXTERNAL表数据,需要手动从HDFS位置删除,这种情况下Hive只会删除元数据。 要删除 HDFS 文件,您可以使用简单的 rm 命令:

    hadoop fs -rm /location_of_data
    

    如果想递归删除,请使用 -rm -R。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多