我已经使用命令在配置单元中创建了一个数据库 CREATE DATABASE FIRST_DB;
然后创建一个数据库。
然后我在其中创建了几个表,它就可以工作了。名为first_db.db的目录是在我的hdfs仓库位置创建的。然后我离开我的Hive。
第二天,当我启动我的Hive,并试图连接使用命令 USE FIRST_DB;
然后它给出了一个错误:
semanticexception[错误10072]:数据库不存在
但是当我签入我的hdfs时,第一个\u db.db出现了,下面的表也出现了。请帮助我在退出配置单元会话后永久设置此数据库。如果我错过了任何配置,请告诉我。
4条答案
按热度按时间6jygbczu1#
这就解决了问题--
我退出了sparkshell并重新启动它,我能够使用sparkshell查看Hive数据库。
1sbrub3j2#
@斯泰西谢谢你的帮助。我解决了这个问题,创建了一个同名的新数据库,即first \u db,紧接着使用
SHOW TABLES
命令,所以我重新启动了我的hive、hadoop和ubuntu机器。重新启动后,它能够连接到我的旧数据库并引用旧表数据。y0u0uwnf3#
你能检查一下你的房间吗
hive.metastore.uris
变量。可能是配置单元会话正在使用您的derby元存储,默认情况下,它是在本地目录中创建的,而不是使用共享元存储。看起来问题出在您的配置(配置单元元存储)上。你能检查一下变量是否设置为
"embedded" or "Remote Metastore"
. embedded是默认值,所以尝试将其更改为“remote metastore”。v7pvogib4#
确保hive-site.conf在spark config目录中。我使用hive命令行进行了检查,一切正常,但sparkshell中的sqlcontext也出现了同样的问题。原来spark config文件夹中没有hive-site.conf。
必须创建一个符号链接,请注意,文件夹的位置可能在您的情况不同。
这里的链接对我很有帮助https://community.cloudera.com/t5/advanced-analytics-apache-spark/how-to-access-the-hive-tables-from-spark-shell/td-p/36609