如何在不使用 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。
我还在主节点上配置了配置单元。一切正常并正常工作。
Nodemanager
和 Datanode
在从节点上工作。
ResourceManager
、Namenode
和 SecondaryNamenode
也在主节点上工作。
我也可以访问 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 加载到配置单元?