无法示例化hivemetastoreclient

zzwlnbp8  于 2021-06-03  发布在  Hadoop
关注(0)|答案(7)|浏览(334)

我有一个3节点的集群在运行。当我试图从集群外部运行一些测试时,我得到以下错误
失败:元数据错误:java.lang.runtimeexception:无法示例化org.apache.hadoop.hive.metastore.hivemetastoreclient失败:执行错误,org.apache.hadoop.hive.ql.exec.ddltask logging的返回代码1使用文件:/net/slc01nwj/scratch/ashshar/view\u storage/ashshar\u bda\u latest\u 2/work/hive\u scratch/conf/hive-log4j.properties中的配置初始化
当我登录到集群节点并执行hive时,它工作正常。
配置单元>显示数据库;确定默认值
在测试日志文件中生成以下错误
13/04/04 03:10:49错误security.usergroupinformation:priviledgedactionexception as:ashshar{my username}(auth:simple) cause:java.io.ioexception:javax.jdo.jdofataldatastoreexception:未能创建数据库'/var/lib/hive/metastore/metastore\u db',有关详细信息,请参阅下一个异常。nestedthrowables:java.sql.sqlexception:未能创建数据库'/var/lib/hive/metastore/metastore\u db',有关详细信息,请参阅下一个异常。
我的 hive-site.xml 文件包含以下连接属性:

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

我改变了主意 /var/lib/hive/metastore/metastore_db 在我的群集节点,但仍然得到相同的错误
我还尝试从上面的目录中删除所有的*lck文件

fcipmucu

fcipmucu1#

在我将metastore从/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/prashant/hive/metastore/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

`

eanckbw9

eanckbw92#

{username}是否有创建的权限 /var/lib/hive/metastore/metastore_db ?
如果它是一个测试集群 sudo chmod -R 777 /var/lib/hive/metastore/metastore_db 或者 chown 它将发送给运行它的用户。

p4tfgftt

p4tfgftt3#

这是针对配置单元文件夹的权限问题。请注意以下几点会很好。转到hive user,对于我hduser,sudo chmod-r 777 hive

hmmo2u0o

hmmo2u0o4#

尝试删除$hadoop\u home/build文件夹。我对hive-0.10.0或更高版本也有同样的问题。然后我尝试了hive-0.9.0,得到了一组不同的错误。幸运的是,这个线程配置单元在安装时不起作用。我也试过同样的把戏,它对我起了神奇的作用。我使用的是默认的derby db。

unftdfkk

unftdfkk5#

这个问题是由于Hive外壳突然终止而发生的。它创建了一个无人参与的db.lck文件。为了解决这个问题,
浏览到metastore\u db位置
删除tmp、dbex.lck和db.lck文件。再次打开Hive外壳。会有用的。
您可以看到tmp、dbex.lck和db.lck文件再次被创建。

0s0u357o

0s0u357o6#

是的,这是特权问题。通过以下命令输入配置单元外壳:

sudo -u hdfs hive
ckocjqey

ckocjqey7#

请确定您的hadoop目录中是否已经有metastore\u db,如果有,请删除它并重新格式化您的hdfs,然后尝试启动hive

相关问题