2016-08-02 6 views
4

Я развернул zeppelin 0.6 и настроил куст под интерпретатором Jdbc.zeppelin hive interpreter бросает ClassNotFoundException

Пробовал выполнение

%hive  
show databases 

Броски:

класс org.apache.hive.jdbc.HiveDriver 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 (собственный метод) java.lang.Class.forName (класс.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

Возможная дубликат http://stackoverflow.com/questions/36212092/classnotfoundexception-org-apache-hive-jdbc-hivedriver – Mistalis

ответ

8

Я просто столкнулся с этим вопросом сегодня утром. Я не уверен, что это рекомендуемый способ исправления, но я загрузил двоичные пакеты для Hive 1.2 и Hadoop 2.6.4. Затем я скопировал следующие банки для ./interpreter/jdbc/ и перезарядил дирижабль ./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

Спасибо @Cooper !!! Это сработало !!! –

+0

@Cooper Спасибо большое, работал и на меня. Как вы уже упоминали, есть ли лучший способ исправить это? –

0

1) Вы можете скачать только драйвер Hive JDBC вместо кустов банки набора, например, один из Cloudera:

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

2)

улей, начиная с 0,14 будет иметь автономную банку для JDBC части:

улей-JDBC автономны.баночка

но до https://issues.apache.org/jira/browse/HIVE-9600 решена, вам потребуется еще две банки:

Hadoop-common.jar

Hadoop-auth.jar

, чтобы положить в classpath вместе с hive-jdbc-standalone.jar

0

популярнейшие данный ответ здесь устраняет проблему

Однако я добавил путь к классам HADOOP_HOME к interpreter.sh взять файлы банка в общих

Ниже строка, которые я добавил в бункер/interpreter.sh внутри Цеппелин

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