Apache Hive:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient
Apache Hive : Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
我正在尝试安装 Apache Hive,我将 HIVE_HOME 和 HADOOP_HOME 插入 hive_config.sh 并将一些配置单元 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 ...
任何帮助请!
您的 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 数据库,如果它在创建时给出 Metastore 错误 table,请转到 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
如果您是 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
要解决上述异常,启动 hive metastore 服务对我有用
$ hive --service metastore
关于启动 Metastore 服务的 cloudera 参考文档:
hive --service metastore &
此命令将启动 Metastore。
无需启动 Metastore 作为服务 运行 hive cli 将做同样的事情,只需确保您从实例化 hive metastore 的同一目录执行 hive 命令
从 属性 开始,它将只创建数据库而不创建模式。尝试在 MySQL
中创建 Hive Metastore 所需的模式
光盘$HIVE_HOME/scripts/metastore/upgrade/mysql/
<使用命令 (mysql -u root -p) 登录 mysql,其中 root 是用户名和密码,将被询问>
mysql> use metastore;
mysql> source hive-schema-<your_version>.mysql.sql;
例如来源hive-schema-2.1.0.mysql.sql;
然后使用以下命令重新启动配置单元 Metastore 进程:
(配置单元——服务元存储)
希望这能解决问题![=11=]
我正在尝试安装 Apache Hive,我将 HIVE_HOME 和 HADOOP_HOME 插入 hive_config.sh 并将一些配置单元 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 ...
任何帮助请!
您的 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 数据库,如果它在创建时给出 Metastore 错误 table,请转到 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
如果您是 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
要解决上述异常,启动 hive metastore 服务对我有用
$ hive --service metastore
关于启动 Metastore 服务的 cloudera 参考文档:
hive --service metastore &
此命令将启动 Metastore。
无需启动 Metastore 作为服务 运行 hive cli 将做同样的事情,只需确保您从实例化 hive metastore 的同一目录执行 hive 命令
从 属性 开始,它将只创建数据库而不创建模式。尝试在 MySQL
中创建 Hive Metastore 所需的模式光盘$HIVE_HOME/scripts/metastore/upgrade/mysql/ <使用命令 (mysql -u root -p) 登录 mysql,其中 root 是用户名和密码,将被询问>
mysql> use metastore;
mysql> source hive-schema-<your_version>.mysql.sql;
例如来源hive-schema-2.1.0.mysql.sql; 然后使用以下命令重新启动配置单元 Metastore 进程:
(配置单元——服务元存储) 希望这能解决问题![=11=]