如何在不使用 hive 终端的情况下删除 hive 数据库?

Posted

技术标签:

【中文标题】如何在不使用 hive 终端的情况下删除 hive 数据库?【英文标题】:How can I delete a hive database without using hive terminal? 【发布时间】:2019-06-07 05:11:33 【问题描述】:

我有一个带有两个节点(一个主节点和一个从节点)的多节点 Hadoop 集群设置。每个节点都有 8GB RAM。

我还在主节点上配置了配置单元。一切正常并正常工作。

NodemanagerDatanode 在从节点上工作。

ResourceManagerNamenodeSecondaryNamenode 也在主节点上工作。

我也可以访问 hive 终端,但我无法通过 drop database databaseName; 命令删除数据库。它没有显示任何错误,但已经卡住了一个多小时......三个表的大小为10000 * 20。我认为这些可能导致速度问题,所以我想删除数据库,但无法通过drop database命令删除,那么有没有办法通过删除任何文件直接做到这一点?

我尝试访问hive.metastore.warehouse.dir直接删除数据库,但是这个目录完全是空的。

使用其他 hive 命令也可以观察到类似的缓慢行为。我只能运行一个命令,即show databases;。而且这个命令也需要大约 70 秒的时间来执行。

我是大数据领域的初学者,因此,我们将不胜感激。如果我需要添加任何配置文件以供参考,请告诉我。

【问题讨论】:

【参考方案1】:

您是通过 HDFS 访问吗?

以下命令应显示您的所有数据库:

hdfs dfs -ls /warehouse/tablespace/managed/hive

注意:/warehouse/tablespace/managed/hive 必须是您的hive.metastore.warehouse.dir

使用 -rm 你可以删除它:

hdfs dfs -rm -r /warehouse/tablespace/managed/hive/yourDatabase

【讨论】:

【参考方案2】:

首先,您应该检查 metastore.log 文件是否发生异常。

您可以手动删除特定表的 hdfs 目录(递归删除),然后删除表(如果存在)(表名)

【讨论】:

以上是关于如何在不使用 hive 终端的情况下删除 hive 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不删除源文件的情况下将数据从 HDFS 加载到配置单元?

如何在不使用 HDP 3.1 中的仓库连接器的情况下将表从 spark 中写入 hive

Spark SQL 在不配置 Hive 的情况下加载数据?

如何使用 pyspark 并行插入 Hive

在不使用操作的情况下对 Spark 进行基准测试

如何在直线开始时删除 ADD jar 语句