Apache Hive:无法实例化org.apache.hadoop.hive.metastore.HiveMetaStoreClient

问题描述 投票:4回答:6

我正在尝试安装Apache Hive,我将HIVE_HOME和HADOOP_HOME插入hive_config.sh并将一些hive jar复制到$ HADOOP_HOME / lib但是当我尝试使用hive命令启动它时出现此错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:346)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1412)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2453)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2465)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:340)
... 7 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1410)
... 12 more
Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
NestedThrowables:
java.lang.reflect.InvocationTargetException
etc ...

任何帮助请!

java apache hadoop hive
6个回答
1
投票

你的hadoop应该处于运行状态。解压下载的配置单元并将权限授予该目录。转到hive / conf目录。将hive-env.sh.template文件发送到hive-env.sh,将hive-default.xml.template文件发送到hive-site.xml。打开hive-evn.sh并在hive-env.sh和HADOOP_HOME中设置JAVA_HOME,并设置hive路径。

export HIVE_HOME=/usr/local/hive

然后打开蜂巢终端

hive

默认情况下,hive需要Derby数据库,如果它在create table时给出Metastore的错误,请转到metastore / metastore_db并删除* .lck文件。

在.bashrc或.bash_profile中添加JAVA_HOME,HADOOP_HOME,HIVE_HOME。

$cd ~
$vi .bashrc

paste following to the end of the file



#Hadoop variables
export JAVA_HOME=/usr/lib/jvm/jdk/
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
###end of paste

1
投票

蜂巢 - 服务Metastore&

此命令将启动Metastore。


1
投票

无需启动Metastore,因为运行hive cli的服务也会这样做,只需确保从实例化hive Metastore的同一目录执行hive命令


0
投票

如果您是CDH用户,则应使用正确的参数构建Zeppelin。这些参数将解决CDH 5.3.3的问题:

mvn clean install -Pspark-1.4 -Phadoop-2.4 -DskipTests -Dspark.version=1.4.0 -Dhadoop.version=2.5.0-cdh5.3.3 -Dhive.hive.version=0.13.1-cdh5.3.3

0
投票

要解决上述异常,启动hive Metastore服务对我有用

   $ hive --service metastore

关于启动Metastore服务的cloudera参考文档:

http://www.cloudera.com/documentation/archive/cdh/4-x/4-7-1/CDH4-Installation-Guide/cdh4ig_topic_18_6.html


0
投票

从属性中,它将仅创建数据库,但不创建模式。尝试在MySQL中创建Hive Metastore所需的模式

cd $ HIVE_HOME / scripts / metastore / upgrade / mysql / <使用命令登录mysql(mysql -u root -p)其中root是用户名和密码将被询问>

mysql> use metastore;
 mysql> source hive-schema-<your_version>.mysql.sql;

例如source hive-schema-2.1.0.mysql.sql;然后使用以下命令重启hive Metastore进程:

(hive --service metastore)希望这能解决问题!

© www.soinside.com 2019 - 2024. All rights reserved.