在Hadoop 2.7.2上安装Hive 2.1.0时出错 - 伪分布式模式

时间:2016-07-17 07:18:10

标签: hive slf4j hadoop-2.7.2

我遵循Apache Hadoop安装链接,可以和PIG一起安装。他们都工作正常。

以下是配置: Hadoop:2.7.2 蜂巢:2.1.0 机器:Ubuntu 14.04 LTS 64位 Java:版本9

现在我尝试根据此链接[https://cwiki.apache.org/confluence/display/Hive/AdminManual+Installation#AdminManualInstallation-InstallingfromaTarball]

安装Apache Hive 2.1.0

...并开始测试Hive CLI的执行,但每次它抛出以下错误并退出。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/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]
Exception in thread "main" java.lang.ClassCastException: jdk.internal.loader.ClassLoaders$AppClassLoader (in module: java.base) cannot be cast to java.net.URLClassLoader (in module: java.base)
at org.apache.hadoop.hive.ql.session.SessionState.<init> (SessionState.java:374)
at org.apache.hadoop.hive.ql.session.SessionState.<init>(SessionState.java:350)
at org.apache.hadoop.hive.cli.CliSessionState.<init>(CliSessionState.java:60)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:663)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:533)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

..但有一个问题。如果我调用Beeline CLI,那么它可以正常工作。

你能帮忙吗? 一个。 Beeline CLI和Hive CLI是相同还是任何特定的区别? 湾帮助在我的机器上安装/配置Hive

1 个答案:

答案 0 :(得分:0)

A:直线CLI VS Hive CLI https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.2/bk_dataintegration/content/beeline-vs-hive-cli.html

B:根据: http://openjdk.java.net/projects/jigsaw/talks/prepare-for-jdk9-j1-2015.pdf

Java 9使用不再使用java.net.URLClassLoader。

但是,我能够通过将Hive指向JDK8来解决问题。

**我刚刚开始使用HIVE / HADOOP ......也许有人可以证明更好的解释或解决方法,以便我们能够使用JDK9 ......