无法创建数据库路径文件:/ user / hive / warehouse错误

时间:2013-04-09 09:25:16

标签: linux hadoop mapreduce hive hdfs

我有一个3节点集群,我在运行一些HIVE查询时遇到以下错误

  

失败:元数据错误:MetaException(消息:无法创建   数据库路径文件:/user/hive/warehouse/db_dut.db,无法创建   database db_dut)FAILED:执行错误,返回代码1   org.apache.hadoop.hive.ql.exec.DDLTask

我的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>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>

&gt; jdbc:derby :; databaseName = / var / lib / hive / metastore / metastore_db; create = true&lt; 正确出现在我的本地计算机上。

当我给hadoop fs -ls / user / hive ...后来输出

[root@scaj02bda01 metastore]# hadoop fs -ls /user/hive
Found 1 items
drwxrwxrwx   - hive hive          0 2013-04-09 01:40 /user/hive/warehouse
[root@scaj02bda01 metastore]# 

HDFS中正确提及仓库的默认数据库位置,并且具有所有读写执行权限,但我仍然遇到相同的错误。

4 个答案:

答案 0 :(得分:3)

它表示无法打开数据库/ var / lib / hive / metastore / metastore_db,当您无权访问数据库时,通常会出现此错误。 使用下面的commond然后回复我:

1)SUDO chmod -R 777 / VAR / LIB / HIVE / METASTORE / METASTORE_DB

2)chmod -R a + rwx / var / lib / hive / metastore / metastore_db

3)rm / var / lib / hive / metastore / metastore_db / * .lck

答案 1 :(得分:0)

我遇到了同样的问题,问题是namenode不是在hadoop中启动的。 转到hadoop文件并执行以下命令:

.sbin/start-all.sh

在那之后检查namenode是否开始使用

jsp

如果没有,我可以参考以下对我Hadoop "Permission denied (publickey,password,keyboard-interactive)" warning有帮助的答案

一旦启动namenode,您的问题就会消失。

答案 2 :(得分:0)

我遇到了同样的错误。由于设置了某些策略,我无法更改权限。因此,我创建了一个自己的新文件夹,如/hdp/myapp/warehouse,并在hive-site.xml中指定了该路径,如下所示。这有助于我解决问题。

<configuration>
  <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:derby:;databaseName=/hdp/myapp/warehouse/metastore_db;create=true</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hdp/myapp/warehouse/</value>
  </property>
</configuration>

答案 3 :(得分:0)

在属性 hive.metastore.warehouse.dir 的 hive-site.xml 中。指向 hdfs 目录而不是本地文件系统目录。所以类似于 localhost:8020/user/hive/warehouse。对我来说就是这样。