【问题标题】:HIVE database does not exist SemanticException 10072HIVE 数据库不存在 SemanticException 10072
【发布时间】:2015-07-28 04:27:11
【问题描述】:

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

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

第二天,当我启动我的 HIVE 并尝试使用命令USE FIRST_DB; 连接时,它给出了一个错误:

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

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

【问题讨论】:

    标签: database hadoop hive bigdata hiveql


    【解决方案1】:

    你能检查你的hive.metastore.uris 变量吗?可能是配置单元会话正在使用您的 derby 元存储,默认情况下它是在本地目录中创建的,而不是使用共享的元存储。

    看起来问题出在您的配置(Hive Metastore)上。你能检查一下变量是否设置为"embedded" or "Remote Metastore"。 Embedded 是默认的,所以尝试将其更改为“Remote Metastore”。

    【讨论】:

      【解决方案2】:

      确保 hive-site.conf 在 spark config 目录中。 我使用 hive 命令行进行了检查,一切正常,但同样的事情在 spark-shell 中的 sqlContext 中失败了。原来spark config文件夹中没有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

      【讨论】:

      • 上述命令完全适用于 quickstart.cloudera vm。
      • 但上述问题不是关于 spark 不能与 hive 一起使用
      【解决方案3】:

      @stacey 感谢您的帮助。我通过创建一个同名的新数据库(即 FIRST_DB)解决了这个问题,紧接着使用SHOW TABLES 命令没有显示旧表,所以我重新启动了我的 hive、hadoop 和 Ubuntu 机器。重新启动后,它能够连接到我的旧数据库并引用旧表数据。

      【讨论】:

        【解决方案4】:

        这解决了问题--

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

        我退出 spark-shell 并重新启动它,我能够使用 spark-shell 查看 hive 数据库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-03
          • 2014-12-05
          • 1970-01-01
          • 1970-01-01
          • 2015-01-09
          • 1970-01-01
          相关资源
          最近更新 更多