Zeppelin JDBC解释器在0.9.0-preview1版本中给出了错误

问题描述 投票:0回答:1

我正在将齐柏林飞艇从0.8.0升级到0.9.0。设置JDBC解释器以访问Postgres数据库时,出现错误。

我在Zeppelin GUI中创建了“ JDBC.postgres”解释器,并运行了一个查询。它给出以下错误。

java.lang.AbstractMethodError: org.apache.zeppelin.interpreter.AbstractInterpreter.getZeppelinContext()Lorg/apache/zeppelin/interpreter/BaseZeppelinContext; 
at org.apache.zeppelin.interpreter.AbstractInterpreter.interpret(AbstractInterpreter.java:32) 
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:103) 
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:676) 
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:569) 
at org.apache.zeppelin.scheduler.Job.run(Job.java:172) 
at org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:121) 
at org.apache.zeppelin.scheduler.ParallelScheduler.lambda$runJobInScheduler$0(ParallelScheduler.java:39) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
at java.lang.Thread.run(Thread.java:748)

但是,相同的设置在版本0.8.0中正常工作

JDBC解释器依赖项:

/usr/lib/zeppelin/interpreter/jdbc
rw-rr- 1 root root 8866 Apr 7 21:24 slf4j-log4j12-1.7.10.jar
rw-rr- 1 root root 32119 Apr 7 21:24 slf4j-api-1.7.10.jar
rw-rr- 1 root root 648487 Apr 7 21:24 postgresql-9.4-1201-jdbc41.jar
rw-rr- 1 root root 489884 Apr 7 21:24 log4j-1.2.17.jar
rw-rr- 1 root root 108036 Apr 7 21:24 commons-pool2-2.2.jar
rw-rr- 1 root root 167962 Apr 7 21:24 commons-dbcp2-2.0.1.jar
rw-rr- 1 root root 46513 Apr 7 21:28 zeppelin-jdbc-0.9.0-preview1.jar
rw-rr- 1 root root 60686 Apr 7 21:28 commons-logging-1.1.1.jar
rw-rr- 1 root root 499634 Apr 7 21:28 commons-lang3-3.7.jar
rw-rr- 1 root root 54423 Apr 7 21:28 commons-exec-1.3.jar

我正在使用Amazon EMR版本6.0.0。 Zeppelin是在群集创建期间安装的。集群启动后,我更新了conf / zeppelin-env.sh中的变量来访问工件的依赖关系。修改后的解释器列表文件,以下载zeppelin-jdbc-0.9.0-preview1.jar。

做出上述更改后,我使用以下命令安装了jdbc解释器。

sudo /usr/lib/zeppelin/bin/install-interpreter.sh -n jdbc

然后我使用Zeppelin GUI创建postgress解释器并运行命令。

有人可以让我知道如何解决此问题。

java postgresql jdbc amazon-emr apache-zeppelin
1个回答
0
投票

当尝试使用EMR 6.0.0和Zeppelin 0.9.0的Zeppelin jdbc解释器使用Athena时,我遇到了相同的问题。

类似于EMR使用的Zeppelin快照版本,其AbstractInterpreter要求使用签名为public abstract ZeppelinContext getZeppelinContext();的方法。由JDBCInterpreter中的zeppelin-jdbc-0.9.0-preview1.jar实现的接口实现public abstract BaseZeppelinContext getZeppelinContext();。这样就抛出了AbstractMethodException

[AWS EMR团队迟早应该解决此问题,但我能够从maven那里获取更新的zeppelin-interpreter-shaded-0.9.0-SNAPSHOT.jar并用它代替zeppelin-interpreter-api-0.9.0-SNAPSHOT.jar,并且似乎可以正常工作。

wget https://repo1.maven.org/maven2/org/apache/zeppelin/zeppelin-interpreter-shaded/0.9.0-preview1/zeppelin-interpreter-shaded-0.9.0-preview1.jar
sudo cp zeppelin-interpreter-shaded-0.9.0-SNAPSHOT.jar /usr/lib/zeppelin/interpreter/zeppelin-interpreter-api-0.9.0-SNAPSHOT.jar

然后杀死/重新启动Zeppelin解释器,应该很好!

© www.soinside.com 2019 - 2024. All rights reserved.