0

我遵循了 Apache Hadoop 安装链接,并且可以将其与 PIG 一起安装。他们都工作正常。

以下是配置: Hadoop:2.7.2 Hive: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

4

1 回答 1

0

答:直线 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 Uses 不再使用 java.net.URLClassLoader。

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

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

于 2017-01-12T20:09:26.053 回答