首页 文章

Hive安装问题:未初始化Hive Metastore数据库

提问于
浏览
33

我尝试在树莓派2上安装配置单元 . 我通过解压缩压缩的Hive包安装Hive,并在我创建的hduser用户组下手动配置$ HADOOP_HOME和$ HIVE_HOME . 运行配置单元时,我收到以下错误消息:配置单元

ERROR StatusLogger未找到log4j2配置文件 . 使用默认配置:仅将错误记录到控制台 . 线程“main”中的异常java.lang.RuntimeException:未初始化Hive Metastore数据库 . 请使用schematool(例如./schematool -initSchema -dbType ...)来创建架构 . 如果需要,不要忘记在JDBC连接字符串中包含自动创建底层数据库的选项(例如,mysql的createDatabaseIfNotExist = true)

所以我运行了上面错误消息中建议的命令:schematool -dbType derby -initSchema我收到了错误消息:

错误:功能'NUCLEUS_ASCII'已存在 . (state = X0Y68,code = 30000)org.apache.hadoop.hive.metastore.HiveMetaException:架构初始化失败! Metastore状态会不一致!! * schemaTool失败*

当我尝试在线谷歌此错误时似乎没有任何有用的信息 . 任何有关Hive如何与Derby合作的帮助或任何解释将不胜感激!

4 回答

  • 10

    我遇到了类似的问题,我通过删除derby数据库文件修复了 rm -Rf $HIVE_HOME/metastore_db

    Be aware, this will remove your schema completely!

    清理旧模式后,我可以重新初始化:

    $HIVE_HOME/bin/schematool -initSchema -dbType derby
    

    它可能与您调用hive的位置不同,尝试转到您的配置单元安装目录并运行 ./bin/hive

  • 0

    安装配置单元后,如果你做的第一件事是运行配置单元,hive试图创建/初始化metastore_db,但显然可能无法正确运行 . 在最初的运行中,也许你看到了你的错误:

    Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
    

    运行配置单元即使失败,也会在运行配置单元的目录中创建一个metastore_db目录:

    ubuntu15-laptop: ~ $>ls -l |grep meta
    drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db
    

    所以当你尝试跑步的时候

    ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
    

    Metastore已经存在,但还没有完整的形式 .

    Soooooo的答案是:

    • 在第一次运行配置单元之前,请运行

    schematool -initSchema -dbType derby

    • 如果您已经运行了hive,然后尝试使用initSchema并且它失败了:

    mv metastore_db metastore_db.tmp

    • 重新开始

    schematool -initSchema -dbType derby

    • 再次运行配置单元

    **另外值得注意的是:如果更改目录,将无法找到上面创建的metastore_db!我确信有一个很好的理由,我还不知道,因为我今天第一次尝试使用蜂巢 . 啊,这里有关于这个的信息:在我运行Hive的任何地方都创建了metastore_db

  • 16

    我在/ usr / local / Cellar / hive安装了带HomeBrew(MacOS)的配置单元,然后运行 schematool -dbType derby -initSchema 我收到以下错误消息:

    启动Metastore架构初始化为2.0.0初始化脚本hive-schema-2.0.0.derby.sql错误:FUNCTION'NUCLEUS_ASCII'已存在 . (state = X0Y68,code = 30000)org.apache.hadoop.hive.metastore.HiveMetaException:架构初始化失败! Metastore状态会不一致!!

    但是,我在安装路径下找不到metastore_db或metastore_db.tmp文件夹,所以我尝试了:

    • find /usr/ -name hive-schema-2.0.0.derby.sql

    • vi /usr/local/Cellar/hive/2.0.1/libexec/scripts/metastore/upgrade/derby/hive-schema-2.0.0.derby.sql

    • 注释'NUCLEUS_ASCII'函数和'NUCLEUS_MATCHES'函数

    • 重新运行 schematool -dbType derby -initSchema ,然后一切顺利!

    希望这能有所帮助 .

  • 112

    试试这个:schematool -dbType mysql -initSchema

    阅读Hive SchemTool的文档:https://cwiki.apache.org/confluence/display/Hive/Hive+Schema+Tool

相关问题