java.sql.SQLException:使用配置单元初始化数据库时无法启动数据库'metastore_db'错误

时间:2013-04-02 09:55:38

标签: hadoop permissions mapreduce hive hdfs

我在3个集群上安装了Hadoop和Hive。我能够从运行HIVE的群集节点登录到hive。

  

root @ NODE_3 hive] #hive使用配置初始化日志记录   罐子:文件:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.2.0.jar /hive-log4j.properties   蜂巢历史   file = / tmp / root / hive_job_log_root_201304020248_306369127.txt hive>节目   桌子;确定所需时间:1.459秒蜂巢>

但是当我尝试在我的群集节点上运行一些配置单元测试时,我得到以下错误。

这里尝试以user = ashsshar {my username}

初始化数据库
  

3/04/02 02:32:44 INFO mapred.JobClient:清理临时区域   hdfs://scaj-ns/user/ashsshar/.staging/job_201304020010_0080 13/04/02   02:32:44 ERROR security.UserGroupInformation:   PriviledgedActionException as:ashsshar(auth:SIMPLE)   原因:java.io.IOException:javax.jdo.JDOFatalDataStoreException:   无法创建数据库'/ var / lib / hive / metastore / metastore_db',请参阅   细节的下一个例外。 NestedThrowables:   java.sql.SQLException:无法创建数据库   '/ var / lib / hive / metastore / metastore_db',请参阅下一个例外   细节。 java.io.IOException:javax.jdo.JDOFatalDataStoreException:   无法创建数据库'/ var / lib / hive / metastore / metastore_db',请参阅   细节的下一个例外。 NestedThrowables:   java.sql.SQLException:无法创建数据库   '/ var / lib / hive / metastore / metastore_db',请参阅下一个例外   的信息。

我尝试了两件事。

1。授予cd / var / lib / hive / metastore / metastore_db

的权限
  1. 删除rm / var / lib / hive / metastore / metastore_db / * lck
  2. 但我仍然得到同样的错误

3 个答案:

答案 0 :(得分:1)

创建Metastore似乎是一个问题。我通过创建一个目录并将值设置为该目录来解决这个问题,如下所示:

步骤1:在家中创建一个目录:hive-metastore-dir

步骤2:超级用户编辑hive-site.xml(在:/ usr / lib / hive / conf中),如下所示:

<name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>

<name>javax.jdo.option.ConnectionURL</name> 
  <value>jdbc:derby:;databaseName=/home/hive-metastore-dir/metastore/metastore_db;create=true</value>

步骤3:以 sudo hive 启动CLI并执行查询。

答案 1 :(得分:0)

您可以从用户具有写访问权限的目录登录hive客户端。默认情况下,当打开shell时,hive将尝试在本地和HDFS中创建临时目录。

答案 2 :(得分:0)

如果您使用的是CDH,请执行以下步骤 1.复制/usr/lib/hive/conf/hive-site.xml并粘贴到/ usr / lib / spark / conf /

这将解决“metastore_db”错误的问题

谢谢