HIVE数据库不存在SemanticException 10072

时间:2015-05-16 07:53:05

标签: database hadoop hive bigdata hiveql

我使用命令CREATE DATABASE FIRST_DB;在HIVE中创建了一个数据库,并创建了一个数据库。

然后我在其中创建了几个表,它正在查找。名为FIRST_DB.db的目录在我的hdfs仓库位置创建。然后我退出了我的HIVE shell。

第二天,当我开始使用HIVE并尝试使用命令USE FIRST_DB;进行连接时,它发出错误:

  

SemanticException [错误10072]:数据库不存在FIRST_DB

但是当我检查我的hdfs时,存在FIRST_DB.db,并且其下的表也存在。请在退出HIVE会话后帮助我永久设置此数据库。如果我错过任何配置,请告诉我。

4 个答案:

答案 0 :(得分:1)

您可以查看hive.metastore.uris变量吗?可能是hive会话正在使用您的derby Metastore,默认情况下是在本地目录中创建而不是使用共享Metastore。

看起来问题在于您的配置(Hive Metastore)。你可以检查变量设置为"embedded" or "Remote Metastore"。嵌入式是默认设置,因此请尝试将其更改为“远程Metastore”。

答案 1 :(得分:1)

确保spark配置目录中有hive-site.conf。 我检查了使用hive命令行,一切正常,但同样的事情是从spark-shell中的sqlContext失败了。原来在spark配置文件夹中没有hive-site.conf。

如果要创建符号链接,请注意文件夹位置可能与您的情况不同。

sudo ln -s /etc/hive/conf.dist/hive-site.xml  /etc/spark/conf.dist/hive-site.xml

此处的链接对我有用https://community.cloudera.com/t5/Advanced-Analytics-Apache-Spark/how-to-access-the-hive-tables-from-spark-shell/td-p/36609

答案 2 :(得分:0)

@stacey谢谢你的帮助。我通过创建一个同名的新数据库,即FIRST_DB解决了这个问题,在使用SHOW TABLES命令未显示旧表之后,我立即重启了我的hive,hadoop和Ubuntu机器。重启后,它能够连接到我的旧数据库并引用旧表数据。

答案 3 :(得分:0)

这解决了问题-

sudo ln -s /etc/hive/conf.dist/hive-site.xml  /etc/spark/conf.dist/hive-site.xml

我退出了spark-shell,然后重新启动它,并且能够使用spark-shell查看配置单元数据库。