prestodb JDBC解释器引发NullPointerException

时间:2016-11-21 18:56:45

标签: apache-zeppelin presto

我正在尝试使用通用JDBC解释器从Zeppelin连接到prestodb。这是配置:

presto %jdbc (default)
Option Shared

Properties
name    value
default.driver  com.facebook.presto.jdbc.PrestoDriver
default.url     jdbc:presto://presto:8080
default.user    presto
zeppelin.jdbc.concurrent.max_connection     10
zeppelin.jdbc.concurrent.use    true
Dependencies
artifact    exclude
/zeppelin/interpreter/jdbc/presto-jdbc-0.157.jar

我可以使用CLI成功连接和查询:

./presto --server presto:8080

但是当我尝试在笔记本段落中使用任何查询时,我得到:

null
class java.lang.NullPointerException
org.apache.zeppelin.jdbc.JDBCInterpreter.getMaxResult(JDBCInterpreter.java:471)
org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:307)
org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:408)
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解释器配置中是否缺少某些内容?

1 个答案:

答案 0 :(得分:2)

事实证明这是一个简单的配置问题。查看getMaxResult的代码:

propertiesMap.get(COMMON_KEY).getProperty(MAX_LINE_KEY, MAX_LINE_DEFAULT));

所以我怀疑JDBC解释器有一些我忘记包含在我的presto解释器上的配置。正在寻找关键字COMMONMAX,有:

common.max_count    1000

将此属性添加到presto解释器可以解决此问题。