Hadoop 在ApacheHive中,具有大量外部表的数据库删除级联所需的时间太长

Hadoop 在ApacheHive中,具有大量外部表的数据库删除级联所需的时间太长,hadoop,hive,parquet,cascade,drop,Hadoop,Hive,Parquet,Cascade,Drop,我已经找到了很多关于如何删除一个DB及其所有表的答案,但是没有找到任何关于为什么每个表需要3-4秒才能删除的答案,似乎是连续的(一个接一个) 我有一个数据库,其中有2414个指向拼花地板位置的外部表,以及DROP数据库级联删除数据库的元数据可能需要1-2个小时 在一个单独的会话中,我可以重复在中显示表格并观察表的计数以大约每3-4秒1的速度下降。在会话释放delete并允许我们用一个新的数据库替换数据库之前,这需要2个小时以上的时间 504 rows selected (0.29 seconds

我已经找到了很多关于如何删除一个DB及其所有表的答案,但是没有找到任何关于为什么每个表需要3-4秒才能删除的答案,似乎是连续的(一个接一个)

我有一个数据库,其中有2414个指向拼花地板位置的外部表,以及
DROP数据库级联删除数据库的元数据可能需要1-2个小时

在一个单独的会话中,我可以重复
在中显示表格
并观察表的计数以大约每3-4秒1的速度下降。在会话释放delete并允许我们用一个新的数据库替换数据库之前,这需要2个小时以上的时间

504 rows selected (0.29 seconds)
...
503 rows selected (0.17 seconds)
...
502 rows selected (0.29 seconds)
...
为什么蜂箱这么长时间? 是否有一种配置我可以使用,使它更快? 有没有办法让我知道这段时间它在做什么

如果这个问题更常见的话,我想其他人也会遇到这个问题,所以我觉得我有一个可以调整的地方来解决这个问题(?…)

在删除的数据库下,拼花似乎不会被删除,因此它似乎与hdfs/拼花文件没有任何关系,除非出于任何原因删除外部表检查它们


知道它为什么会这么慢吗?

好吧,它必须删除所有的引用。它可以是外部表,但万一metastore中有很多分区、统计信息等。此外,如果它有很多行,则需要获取特定的锁。
您可能需要检查metastore(mysql或同等版本),看看是否可以引入任何索引或定期收集统计数据。

metastore是Apache Hive。统计数据和索引会提高下降速度吗?