2

我已经安装了 Hive,但是当我编写命令来创建表“CREATE TABLE foo(id int, msg STRING);”时。我抛出异常“清理操作完成失败:元数据错误:javax.jdo.JDOFatalDataStoreException:无法创建数据库'metastore_db',有关详细信息,请参阅下一个异常。NestedThrowables:java.sql.SQLException:无法创建数据库'metastore_db',有关详细信息,请参阅下一个异常。失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 中返回代码 1”。为什么会发生此异常,可能是配置问题或其他原因。

4

2 回答 2

7

我有同样的问题:

voicestreams@voicestreams:~/testbed/eclipseprojects/workspace/mapreducesort/java$ hive

Hive 历史文件=/tmp/root/hive_job_log_root_201210282200_1123208966.txt

蜂巢>显示表

失败:元数据中的错误:javax.jdo.JDOFatalDataStoreException:无法创建数据库“/var/lib/hive/metastore/metastore_db”,有关详细信息,请参阅下一个异常。NestedThrowables: java.sql.SQLException: 无法创建数据库 '/var/lib/hive/metastore/metastore_db',有关详细信息,请参阅下一个异常。失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1

我使用 apt-get install hadoop-hive 安装了 Hive。在我将元存储从 /var/lib/hive/ 移动后,它起作用了。我通过编辑来做到这一点: /etc/hive/conf.dist/hive-site.xml

从:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

至:

<property>  
<name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=/home/voicestreams/hive/metastore/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

`

基本上,我将 databaseName= 更改为可写目录 (/home/voicestreams/hive/) 并且它起作用了。当然,我必须在再次运行 hive 之前创建 /home/voicestreams/hive/。希望这会有所帮助。

于 2012-10-28T11:24:07.193 回答
0

确保从 hive 目录的 bin 文件夹启动 hive。它对我有用!

于 2022-01-28T13:05:13.180 回答