运行 HIVE 命令抛出错误:线程“主”java.lang.RuntimeException 中的异常:org.apache.hadoop.hive.ql.metadata.HiveException
Posted
技术标签:
【中文标题】运行 HIVE 命令抛出错误:线程“主”java.lang.RuntimeException 中的异常:org.apache.hadoop.hive.ql.metadata.HiveException【英文标题】:Running HIVE command throwing error: Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException 【发布时间】:2017-02-24 06:42:28 【问题描述】:我已经按照link 在我的 Ubuntu 机器上完成了 HIVE 设置。 当我运行 HIVE 命令(最后一步)时,我得到了这个异常:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/administrator/apache-hive-2.1.1-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/administrator/hadoop-2.7.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Logging initialized using configuration in jar:file:/home/administrator/apache-hive-2.1.1-bin/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:591)
at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:531)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:705)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
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.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.ql.metadata.Hive.registerAllFunctionsOnce(Hive.java:226)
at org.apache.hadoop.hive.ql.metadata.Hive.<init>(Hive.java:366)
at org.apache.hadoop.hive.ql.metadata.Hive.create(Hive.java:310)
at org.apache.hadoop.hive.ql.metadata.Hive.getInternal(Hive.java:290)
at org.apache.hadoop.hive.ql.metadata.Hive.get(Hive.java:266)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:558)
谁能帮忙?
【问题讨论】:
【参考方案1】:可能重复:- java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
您似乎正在使用 derby 数据库作为元存储。我在 vm 上也遇到过类似的问题。
如果可以,请安装 mysql 并将其用于 Metastore。
更多信息:-
https://dzone.com/articles/how-configure-mysql-metastore
【讨论】:
【参考方案2】:从属性中,它将只创建数据库而不创建模式。尝试在 MySQL 中创建 Hive Metastore 所需的架构
cd $HIVE_HOME/scripts/metastore/upgrade/mysql/
mysql> use metastore;
mysql> source hive-schema-<your_version>.mysql.sql;
例如源 hive-schema-2.1.0.mysql.sql; 然后使用重新启动配置单元元存储进程。 蜂巢——服务元存储。 希望这能解决问题!
【讨论】:
以上是关于运行 HIVE 命令抛出错误:线程“主”java.lang.RuntimeException 中的异常:org.apache.hadoop.hive.ql.metadata.HiveException的主要内容,如果未能解决你的问题,请参考以下文章
为啥从主线程调用时,`std::promise::set_value` 会抛出错误?
线程“主”java.lang.NoClassDefFoundError 中的异常: