2016-08-02 32 views
4

Ich habe Zeppelin 0.6 und konfiguriert Hive unter Jdbc-Interpreter bereitgestellt.Zeppelin-Hive-Interpreter wirft ClassNotFoundException

Versuchte Ausführung

%hive  
show databases 

Wirft:

org.apache.hive.jdbc.HiveDriver Klasse java.lang.ClassNotFoundException java.net.URLClassLoader.findClass (URLClassLoader.java:381) java.lang.ClassLoader.loadClass (ClassLoader.java:424) sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:331) java.lang.ClassLoader.loadClass (ClassLoader.java:357) java.lang.Class.forName0 (Native Methode) java.lang.Class.forName (Klasse.java:264) org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection (JDBCInterpreter.java:220) org.apache .zeppelin.jdbc.JDBCInterpreter.getStatement (JDBCInterpreter.java:233) org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql (JDBCInterpreter.java:292) org.apache.zeppelin.jdbc.JDBCInterpreter.interpret (JDBCInterpreter.java : 398) org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret (LazyOpenInterpreter.java:94) org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun (RemoteInterpreterServer.java:383) org.apache. zeppelin.scheduler.Job.run (Job.java:176) org.apache.zeppelin.scheduler.ParallelScheduler $ JobRun ner.run (ParallelScheduler.java:162) java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) java.util.concurrent.FutureTask.run (FutureTask.java:266) java.util .concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201 (ScheduledThreadPoolExecutor.java:180) java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:293) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java: 1142) java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) java.lang.Thread.run (Thread.java:745)

+2

Mögliche Duplikat http://stackoverflow.com/questions/36212092/classnotfoundexception-org-apache-hive-jdbc-hivedriver – Mistalis

Antwort

8

ich nur ist heute Morgen in diese Ausgabe geraten. Ich bin mir nicht sicher, ob dies die empfohlene Lösung ist, aber ich habe die Binärpakete für Hive 1.2 und Hadoop 2.6.4 heruntergeladen. Ich kopiert dann die folgenden Gläser zu ./interpreter/jdbc/ und neu geladen zeppelin ./bin/zeppelin-daemon.sh reload

cp ~/Dev/Hadoop/apache-hive-1.2.1-bin/lib/hive-jdbc-1.2.1-standalone.jar ./interpreter/jdbc/

cp ~/Dev/Hadoop/hadoop-2.6.4/share/hadoop/common/hadoop-common-2.6.4.jar ./interpreter/jdbc/

+0

Dank @Cooper !!! Es funktionierte !!! –

+0

@ Cooper Vielen Dank, arbeitete auch für mich. Wie Sie bereits erwähnt haben, gibt es einen besseren Weg, dies zu beheben? –

0

1) Sie nur Treiber Hive JDBC herunterladen könnte anstelle von ganzen Hive Gläser eingestellt, beispielsweise eine von Cloudera:

http://www.cloudera.com/downloads/connectors/hive/jdbc/2-5-17.html

2)

Hive mit 0,14 Start wird ein eigenständiges jar für JDBC Teil hat:

hive-jdbc-Standalone.jar

aber bis https://issues.apache.org/jira/browse/HIVE-9600 behoben ist, Sie zwei weitere Gläser benötigen würde:

hadoop-common.jar

hadoop-auth.jar

zu setzen in classpath zusammen mit hive-jdbc-standalone.jar

0

Die am besten bewerteten Antwort, die hier gegeben wird das Problem behoben

Jedoch habe ich den Classpath von HADOOP_HOME hinzugefügt haben, um interpreter.sh die JAR-Dateien gemeinsam

Below zu nehmen ist die Linie, die ich bin hinzugefügt/interpreter.sh innen

zeppelin
HADOOP_HOME=/opt/hadoop-2.6.2/ 
addJarInDirForIntp "${HADOOP_HOME}/share/hadoop/common