Hive 安装问题:Hive 元存储数据库未初始化



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

错误状态记录器 找不到 log4j2 配置文件。使用默认配置:仅将错误记录到控制台。

线程"main"中的异常 java.lang.RuntimeException:Hive 元存储数据库未初始化。请使用 schematool(例如 ./schematool -initSchema -dbType ...)来创建架构。如果需要,不要忘记在 JDBC 连接字符串中包含自动创建底层数据库的选项(例如 ?createDatabaseIfNotExist=true for mysql)

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

错误:函数"NUCLEUS_ASCII"已存在。(状态=X0Y68,代码=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED!元存储状态将不一致!! * 架构工具失败 *

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

安装 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

元存储已存在,但不是完整形式。

所以答案是:

  1. 首次运行 hive 之前,请运行

    schematool -initSchema -dbType derby

  2. 如果您已经运行了 hive,然后尝试初始化架构并且失败了:

    MV metastore_db metastore_db.tmp

  3. 重新运行

    schematool -initSchema -dbType derby

  4. 再次运行配置单元

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

我在/usr/local/Cellar/hive 和 afer run 上安装了 HomeBrew(MacOS) 的 hive。 schematool -dbType derby -initSchema 我收到以下错误消息:

将元存储架构初始化启动到 2.0.0初始化脚本配置单元架构-2.0.0.derby.sql错误:函数"NUCLEUS_ASCII"已存在。(状态=X0Y68,代码=30000)org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED!元存储状态将不一致!!

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

  1. find /usr/ -name hive-schema-2.0.0.derby.sql
  2. vi /usr/local/Cellar/hive/2.0.1/libexec/scripts/metastore/upgrade/derby/hive-schema-2.0.0.derby.sql
  3. 注释"NUCLEUS_ASCII"函数和"NUCLEUS_MATCHES"函数
  4. 重新运行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,则可以删除数据库文件并运行 init 进程。

或者,如果问题仍然存在,可以编辑 Hive 使用的 SQL 文件。例如:

/usr/hdp/2.5.6.0-40/hive2/scripts/metastore/upgrade/mysql/包含 mysql 的那些。

相关内容

  • 没有找到相关文章

最新更新