我使用命令CREATE DATABASE FIRST_DB;
在HIVE中创建了一个数据库,并创建了一个数据库。
然后我在其中创建了几个表,它正在查找。名为FIRST_DB.db的目录在我的hdfs仓库位置创建。然后我退出了我的HIVE shell。
第二天,当我开始使用HIVE并尝试使用命令USE FIRST_DB;
进行连接时,它发出错误:
SemanticException [错误10072]:数据库不存在FIRST_DB
但是当我检查我的hdfs时,存在FIRST_DB.db,并且其下的表也存在。请在退出HIVE会话后帮助我永久设置此数据库。如果我错过任何配置,请告诉我。
答案 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
答案 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查看配置单元数据库。