2016-07-17 6 views
0

Ich folgte Apache Hadoop-Installationsverknüpfungen und konnte diese zusammen mit PIG installieren. Sie alle funktionieren gut.Fehler bei der Installation von Hive 2.1.0 auf Hadoop 2.7.2 - Pseudo-verteilter Modus

Nach der Konfiguration: Hadoop: 2.7.2 Hive: 2.1.0 Maschine: Ubuntu 14.04 LTS 64-Bit- Java: Version 9

Jetzt habe ich versucht, Apache Hive 2.1.0 nach installieren zu diesem Link [https://cwiki.apache.org/confluence/display/Hive/AdminManual+Installation#AdminManualInstallation-InstallingfromaTarball].

... und die Testausführung der Hive-CLI gestartet wurde, aber jedes Mal, wenn der folgende Fehler ausgegeben wird und beendet wird.

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([email protected]/Native Method) 
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62) 
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(java.[email protected]/Method.java:533) 
at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

.. Aber da ist ein Haken. Wenn ich Beeline CLI aufruft, funktioniert es gut.

Könnten Sie bitte helfen: a. Sind der Beeline CLI und der Hive CLI gleich oder ein spezifischer Unterschied? b. Hilfe zur Installation/Konfiguration Hive auf meinem Rechner

Antwort

0

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

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

Java 9 Verwendet nicht mehr verwendet java.net.URLClassLoader.

Allerdings konnte ich das Problem lösen, indem ich Hive auf JDK8 zeigte.

** Ich habe nur HIVE/Hadoop begonnen mit ... Vielleicht könnte jemand eine bessere Erklärung oder eine Abhilfe erwiesen, so dass wir in der Lage sind JDK9 zu verwenden ...