2016-12-27 5 views
0

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

  1. исключение синтаксического анализа Цеппелин

при запуске ульи запроса в Цеппелине, там будет быть исключением синтаксического анализа, если строка заканчивается символом ';' , Например:

когда я бегу в дирижабле,

%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.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) 

но при запуске в дирижабле,

%jdbc(hive) 
show tables 

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

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

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

PS:

флягу пакеты в/ZEPPELIN/интерпретатора/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 

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

благодаря

ответ

0
  1. исключение синтаксического анализа Цеппелин

  2. несколько ульев запросов в одном пункте

    • Цеппелин не поддерживает несколько запросов в одном параграфах, так что вы можете теперь один запрос в один параграф.

Я надеюсь, что это помогает.

0

Только обновление до новой версии (Zeppelin 0.7.2) исправит два вопроса.

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