在hadoop2.7.2上安装hive2.1.0时出错-伪分布式模式

z9smfwbn  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(334)

我遵循apachehadoop的安装链接,可以和pig一起安装。他们都工作得很好。
配置如下:hadoop:2.7.2 hive:2.1.0 machine:ubuntu14.04 lts 64位java:version 9
现在我尝试根据这个链接安装ApacheHive2.1.0[https://cwiki.apache.org/confluence/display/hive/adminmanual+installation#adminmanualinstallation-从一个球安装]。
... 并开始测试执行配置单元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,那么它可以正常工作。
你能帮忙吗:a。beeline cli和hive cli是相同的还是有什么特别的区别?b。帮助在我的计算机上安装/配置配置单元

bfrts1fy

bfrts1fy1#

a:beeline cli与hive clihttps://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
Java9不再使用java.net.urlclassloader。
但是,我通过将hive指向jdk8解决了这个问题。

**我刚刚开始使用hive/hadoop。。。也许有人可以证明一个更好的解释或解决办法,使我们能够使用jdk9。。。

相关问题