我尝试在树莓派2上安装hive。我通过解压缩压缩的Hive包来安装Hive,并在我创建的hduser用户组下手动配置$HADOOP_HOME和$HIVE_HOME。运行 hive 时,出现以下错误消息: 蜂巢
错误 StatusLogger 未找到 log4j2 配置文件。使用默认配置:仅将错误记录到控制台。
线程“main”中出现异常 java.lang.RuntimeException:Hive 元存储数据库未初始化。请使用 schematool(例如 ./schematool -initSchema -dbType ...)来创建架构。如果需要,不要忘记在 JDBC 连接字符串中包含自动创建底层数据库的选项(例如 ?createDatabaseIfNotExist=true 对于 mysql)
所以我运行了上面错误消息中建议的命令: schematool -dbType derby -initSchema 我收到错误消息:
错误:函数“NUCLEUS_ASCII”已存在。 (状态=X0Y68,代码=30000) org.apache.hadoop.hive.metastore.HiveMetaException:架构初始化失败!元存储状态会不一致! * schemaTool 失败 *
当我尝试在线谷歌搜索此错误时,似乎没有任何有用的信息。任何有关 Hive 如何与 Derby 配合使用的帮助或解释将不胜感激!
安装 hive 后,如果您所做的第一件事是运行 hive,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)
运行 hive,即使失败,也会在运行 hive 的目录中创建一个 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
元存储已经存在,但不完整。
太棒了,答案是:
在第一次运行 Hive 之前,请运行
schematool -initSchema -dbType derby
如果您已经运行了 hive,然后尝试 initSchema 但失败了:
mv 元存储_db 元存储_db.tmp
重新运行
schematool -initSchema -dbType derby
再次运行 hive
**另请注意:如果更改目录,将找不到上面创建的metastore_db!我确信这是有一个我还不知道的充分理由,因为我今天确实是第一次尝试使用 hive。啊,这是关于此的信息:metastore_db 在我运行 Hive 的任何地方创建
我使用 HomeBrew(MacOS) 在 /usr/local/Cellar/hive 安装了 hive,然后运行
schematool -dbType derby -initSchema
我收到以下错误消息:
开始元存储架构初始化到 2.0.0 初始化脚本 hive-schema-2.0.0.derby.sql 错误:函数“NUCLEUS_ASCII”已存在。 (状态=X0Y68,代码=30000) org.apache.hadoop.hive.metastore.HiveMetaException:架构初始化失败!元存储状态会不一致!!
但是,我在安装路径下找不到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
schematool -dbType derby -initSchema
,然后一切顺利!希望这对某人有帮助。
我遇到了类似的问题,我通过删除 derby 数据库文件来修复该问题
rm -Rf $HIVE_HOME/metastore_db
请注意,这将完全删除您的架构!
清理旧模式后,我可以重新初始化:
$HIVE_HOME/bin/schematool -initSchema -dbType derby
它可能与你调用 hive 的位置不同,尝试进入你的 hive 安装目录并运行
./bin/hive
试试这个: schematool -dbType mysql -initSchema
阅读Hive SchemTool的文档: https://cwiki.apache.org/confluence/display/Hive/Hive+Schema+Tool
如果您使用Derby,您可以删除DB文件并运行init进程。
或者如果问题仍然存在,您可以编辑 Hive 使用的 SQL 文件。例如:
/usr/hdp/2.5.6.0-40/hive2/scripts/metastore/upgrade/mysql/
包含 mysql 的那些。
我遇到了类似的错误,说
Schema initialization FAILED! Metastore state would be inconsistent !!
,尽管我的问题不同。我在 Docker 上安装了 HMS 和 Postgres,重新启动 HMS 后尝试初始化 Metastore,而此时已经有一个 Metastore。该解决方案添加了--env IS_RESUME="true"
,如此处所述。