Zeppelin Hive ParseException

Я использую Zeppelin с Hive на Hortonworks HDP2.5 кластеров, и у меня есть два вопроса :

  1. Zeppelin parse исключение

когда я выполняю запрос hive в Zeppelin, будет исключение разбора, если строка заканчивается’;’, например :

когда я бегу в zeppelin ,

%jdbc(hive) 
show tables; 

существует ошибка, как показано ниже

Error while compiling statement: FAILED: ParseException line 1:11 extraneous input ';' expecting EOF near '<EOF>'
class org.apache.hive.service.cli.HiveSQLException
org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:262)
org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:248)
org.apache.hive.jdbc.HiveStatement.runAsyncOnServer(HiveStatement.java:297)
org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:238)
org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:356)
org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:442)
org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94)
org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:341)
org.apache.zeppelin.scheduler.Job.run(Job.java:176)
org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.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.access1(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)

но когда я бегу в zeppelin,

%jdbc(hive) 
show tables

он хорошо работает без ошибок.

  1. второй вопрос заключается в том, может ли Zeppelin выполнять несколько запросов hive только в одном сегменте ?

Если да, то как написать несколько запросов hive ? например (использовать базу данных; показать таблицы; )

ПС :

Пакеты jar под /zeppelin / interpreter/jdbc показаны ниже

-rwxr-xr-x. 1 zeppelin zeppelin  2172168 Aug 26 11:58 guava-15.0.jar
-rwxr-xr-x. 1 zeppelin zeppelin  3607775 Dec 26 13:48 hadoop-common-2.7.3.2.5.0.0-1245.jar
-rwxr-xr-x. 1 root     root     20087903 Dec 27 12:44 hive-jdbc-1.2.1000.2.5.0.0-1245-standalone.jar
-rwxr-xr-x. 1 zeppelin zeppelin   213911 Aug 26 11:58 jline-2.12.1.jar
-rwxr-xr-x. 1 zeppelin zeppelin   489884 Aug 26 11:58 log4j-1.2.17.jar
-rwxr-xr-x. 1 zeppelin zeppelin   648487 Aug 26 11:58 postgresql-9.4-1201-jdbc41.jar
-rwxr-xr-x. 1 zeppelin zeppelin   533455 Dec 26 13:46 protobuf-java-2.5.0.jar
-rwxr-xr-x. 1 zeppelin zeppelin    32119 Aug 26 11:58 slf4j-api-1.7.10.jar
-rwxr-xr-x. 1 zeppelin zeppelin     8866 Aug 26 11:58 slf4j-log4j12-1.7.10.jar
-rwxr-xr-x. 1 zeppelin zeppelin    31273 Aug 26 11:58 zeppelin-jdbc-0.6.0.2.5.0.0-1245.jar

Любая помощь очень ценится !

спасибо

2 ответа

    1. Zeppelin parse исключение

      • Это нормальное поведение, потому что интерпретатор JDBC работает как клиентская программа(вы можете обратиться к образцу кода клиента JDBC
        в https://cwiki.apache.org/confluence/display/Hive/HiveServer2 + клиенты)
    2. несколько запросов hive в одном абзаце

      • Zeppelin не поддерживает несколько запросов в одном paragrph, поэтому теперь вы можете один запрос в одном pargraph.

    Надеюсь, это поможет.

  1. Просто обновление до новой версии (Zeppelin 0.7.2) исправит два вопроса.

    Если не хотите обновлять, я предлагаю вам прочитать исходный код zeppelin и внести некоторые изменения в класс JDBCInterpreter.