Hadoop java.sql.SQLException:无法启动数据库';元存储数据库';使用配置单元初始化数据库时出错

Hadoop java.sql.SQLException:无法启动数据库';元存储数据库';使用配置单元初始化数据库时出错,hadoop,permissions,mapreduce,hive,hdfs,Hadoop,Permissions,Mapreduce,Hive,Hdfs,我在3集群上安装了Hadoop和Hive。我可以从运行配置单元的群集节点登录到配置单元 root@NODE_3配置单元]#使用中的配置初始化配置单元日志记录 jar:file:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.2.0.jar/hive-log4j.properties 蜂巢史 file=/tmp/root/hive\u job\u log\u root\u 20130402048\u 306369127.txt hive>show 桌子;确定时间

我在3集群上安装了Hadoop和Hive。我可以从运行配置单元的群集节点登录到配置单元

root@NODE_3配置单元]#使用中的配置初始化配置单元日志记录 jar:file:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.2.0.jar/hive-log4j.properties 蜂巢史 file=/tmp/root/hive\u job\u log\u root\u 20130402048\u 306369127.txt hive>show 桌子;确定时间:1.459秒蜂巢>

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

在这里,它试图将数据库初始化为user=ashshar{my username}

3/04/02 02:32:44信息映射。作业客户端:清理临时区域 hdfs://scaj-ns/user/ashsshar/.staging/job_201304020010_0080 13/04/02 02:32:44错误安全性。用户组信息: PriviledEdActionException为:Ashshar(身份验证:简单) 原因:java.io.IOException:javax.jdo.JDOFatalDataStoreException: 未能创建数据库“/var/lib/hive/metastore/metastore_db”,请参阅 下一个例外是详细信息。嵌套的工作流表: java.sql.SQLException:无法创建数据库 “/var/lib/hive/metastore/metastore_db”,请参见下一个异常 细节。java.io.IOException:javax.jdo.JDOFatalDataStoreException: 未能创建数据库“/var/lib/hive/metastore/metastore_db”,请参阅 下一个例外是详细信息。嵌套的工作流表: java.sql.SQLException:无法创建数据库 “/var/lib/hive/metastore/metastore_db”,请参见下一个异常 细节

我试过两件事

一,。授予cd/var/lib/hive/metastore/metastore\u db权限

  • 删除rm/var/lib/hive/metastore/metastore_db/*lck

  • 但我还是遇到了同样的错误,这似乎是创建元存储的问题。我通过创建一个目录并将值设置为该目录来解决此问题,如下所示:

    <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
    
    步骤1:在home上创建一个目录,比如: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>
    
    javax.jdo.option.ConnectionURL
    jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore\u db;create=true
    

    javax.jdo.option.ConnectionURL
    jdbc:derby:;databaseName=/home/hive metastore dir/metastore/metastore_db;create=true
    

    步骤3:以sudo配置单元的身份启动CLI并执行查询。

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

    如果您正在使用CDH,请遵循以下步骤 1.复制/usr/lib/hive/conf/hive-site.xml并粘贴到/usr/lib/spark/conf中/

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


    谢谢

    您使用的是单独的metestore还是嵌入式DB(Derby DB?)请更详细地解释一下您的设置是的,我使用的是Derby DB。|以下属性在我的hive-site.xml文件中定义。javax.jdo.option.ConnectionURL jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore\u db;create=true这是一个空目录吗?“/home/hive metastore dir/metastore/metastore_db'或者我们需要在其中添加其他文件吗?