HIVE:外部 Table - 如何清理 user/hive/warehouse/db/table 目录中加载的文件
HIVE : External Table - how do you clean-up the files in loaded in the user/hive/warehouse/db/table directory
根据文档,当我们在 HIVE 中创建一个 EXTERNAL table,然后 DROP table,元数据被更新并且加载到 HDFS 目录中的数据 /user/hive/warehouse//> 还存在吗?
我有两个问题:
1.如何清理/user/hive/warehouse/>中的文件?
2. 当我再次尝试创建 table 并且文件名称相同但数据不同时,HIVE 仓库文件没有更新
应该是?? (我问这个是因为我不确定这是设置问题还是预期行为)
Hive 不会在仓库目录中存储(管理)外部 table 的任何数据文件。它仅将这些 table 的元数据存储在 Metastore 中。
这是 Hive 内部(托管)和外部 table 之间的主要区别。内部 table 拥有 数据,外部 table 只有 知道 。
更详细的解释here.
要删除外部 table 数据,您需要从 HDFS 位置手动删除它,Hive 在这种情况下仅删除元数据。
要删除 HDFS 文件,您可以使用简单的 rm 命令:
hadoop fs -rm /location_of_data
如果要递归删除,请使用 -rm -R。
根据文档,当我们在 HIVE 中创建一个 EXTERNAL table,然后 DROP table,元数据被更新并且加载到 HDFS 目录中的数据 /user/hive/warehouse//> 还存在吗?
我有两个问题: 1.如何清理/user/hive/warehouse/>中的文件? 2. 当我再次尝试创建 table 并且文件名称相同但数据不同时,HIVE 仓库文件没有更新 应该是?? (我问这个是因为我不确定这是设置问题还是预期行为)
Hive 不会在仓库目录中存储(管理)外部 table 的任何数据文件。它仅将这些 table 的元数据存储在 Metastore 中。
这是 Hive 内部(托管)和外部 table 之间的主要区别。内部 table 拥有 数据,外部 table 只有 知道 。
更详细的解释here.
要删除外部 table 数据,您需要从 HDFS 位置手动删除它,Hive 在这种情况下仅删除元数据。 要删除 HDFS 文件,您可以使用简单的 rm 命令:
hadoop fs -rm /location_of_data
如果要递归删除,请使用 -rm -R。