配置单元安装问题:配置单元元存储数据库未初始化

krcsximq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(5)|浏览(463)

我试着在树莓皮2上安装Hive。我通过解压压缩的配置单元包安装了配置单元,并在我创建的hduser用户组下手动配置$hadoop\u home和$hive\u home。运行hive时,我收到以下错误消息:hive
错误状态记录器未找到log4j2配置文件。使用默认配置:仅将错误记录到控制台。
线程“main”java.lang.runtimeexception中出现异常:配置单元元存储数据库未初始化。请使用schematool(例如../schematool-initschema-dbtype…)创建模式。如果需要,不要忘记在jdbc连接字符串中包含自动创建基础数据库的选项(例如,对于mysql,createdatabaseifnotexist=true)
所以我运行了上面错误消息中建议的命令:schematool-dbtypederby-initschema我得到了错误消息:
错误:函数'nucleus\u ascii'已存在(state=x0y68,code=30000)org.apache.hadoop.hive.metastore.hivemetaexception:架构初始化失败!元存储状态不一致!!schematool失败
似乎没有任何有用的信息,当我试图谷歌这个错误在线。任何帮助或任何关于如何与德比Hive工程解释将不胜感激!

gopyfrb3

gopyfrb31#

试试这个:schematool-dbtypemysql-initschema
阅读配置单元schemtool的文档:https://cwiki.apache.org/confluence/display/hive/hive+schema+tool

ffx8fchx

ffx8fchx2#

我在/usr/local/cellar/hive安装了带有自制软件(macos)的hive,运行后 schematool -dbType derby -initSchema 我收到以下错误消息:
正在启动metastore架构初始化到2.0.0初始化脚本hive-schema-2.0.0.derby.sql错误:函数“nucleus\u ascii”已存在(state=x0y68,code=30000)org.apache.hadoop.hive.metastore.hivemetaexception:架构初始化失败!元存储状态不一致!!
但是,我在安装路径下找不到metastore\ u db或metastore\ u 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\u ascii”函数和“nucleus\u matches”函数
重新运行 schematool -dbType derby -initSchema ,然后一切顺利!
希望这能帮助别人。

frebpwbc

frebpwbc3#

我遇到了一个类似的问题,我通过删除derby数据库文件解决了这个问题 rm -Rf $HIVE_HOME/metastore_db 请注意,这将完全删除您的模式!
清除旧模式后,我可以使用以下方法重新初始化:

$HIVE_HOME/bin/schematool -initSchema -dbType derby

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

ruarlubt

ruarlubt4#

在安装hive之后,如果您做的第一件事是运行hive,那么hive尝试创建/初始化metastore\u 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\u 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

元存储已经存在,但不是完整的形式。
所以答案是:
在你第一次跑 hive 之前,快跑
schematool-initschema-dbtype derby
如果您已经运行了配置单元,然后尝试初始化架构,但失败了:
mv元存储\数据库元存储\数据库.tmp
重新运行
schematool-initschema-dbtype derby
再次运行Hive

**另请注意:如果更改目录,将找不到上面创建的metastore\u db!我肯定有一个很好的理由,我还不知道,因为我真的是第一次尝试使用Hive今天。这里有关于这个的信息:metastore\u db创建在我运行hive的地方

ccrfmcuu

ccrfmcuu5#

如果使用derby,可以删除db文件并运行init进程。
或者,如果问题仍然存在,您可以编辑配置单元使用的sql文件。例如: /usr/hdp/2.5.6.0-40/hive2/scripts/metastore/upgrade/mysql/ 包含mysql的那些。

相关问题