gpt4 book ai didi

hive - 从 HDFS 手动删除分区数据时,如何更新 Hive 中的分区元数据

转载 作者:行者123 更新时间:2023-12-03 12:30:57 27 4
gpt4 key购买 nike

自动更新Hive分区表元数据的方法是什么?

如果新的分区数据被添加到 HDFS(没有执行 alter table add partition 命令)。然后我们可以通过执行命令“msck repair”来同步元数据。

如果从HDFS中删除了大量分区数据(没有执行alter table drop partition命令执行)该怎么办。

同步 Hive 元数据的方法是什么?

最佳答案

编辑 :以 开头 hive 3.0.0 MSCK现在可以使用以下语法发现新分区或删除丢失的分区(或两者):

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS]

这是在 HIVE-17824 中实现的

正如 HakkiBuyukcengiz 正确所述, MSCK REPAIR如果 HDFS 上的相应文件夹被手动删除,则不会删除分区,如果新文件夹是 ,它只会添加分区已创建 .

摘自官方 documentation :

In other words, it will add any partitions that exist on HDFS but not in metastore to the metastore.



这就是我通常在 external在场时所做的如果在 HDFS 上手动删除多个分区文件夹,并且我想快速刷新分区,请查看表:
  • 删除表 ( DROP TABLE table_name )
    (删除外部表不会删除底层分区文件)
  • 重新创建表 ( CREATE EXTERNAL TABLE table_name ... )
  • 修复它 ( MSCK REPAIR TABLE table_name )

  • 根据分区的数量,这可能需要很长时间。另一种解决方案是使用 ALTER TABLE DROP PARTITION (...)对于每个已删除的分区文件夹,但如果删除了多个分区,这可能会很乏味。

    关于hive - 从 HDFS 手动删除分区数据时,如何更新 Hive 中的分区元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108251/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com