Jdbc 使用ExecuteSQL时,NiFi DBCPConnectionPool抛出NoClassDefFoundError

Jdbc 使用ExecuteSQL时,NiFi DBCPConnectionPool抛出NoClassDefFoundError,jdbc,apache-nifi,impala,Jdbc,Apache Nifi,Impala,我使用DBCPConnectionPool通过JDBC连接到impala 我指向了一个包含Cloudera的Impala JDBC驱动程序及其所有依赖项的文件夹。我已将驱动程序类名设置为: com.cloudera.impala.jdbc4.Driver 连接URL类似于: jdbc:impala://server:port/default;AuthMech=0 启用控制器服务不会导致错误,但启用ExecuteSQL时会引发异常: 无法处理会话,因为java.lang.NoClassDefFou

我使用DBCPConnectionPool通过JDBC连接到impala

我指向了一个包含Cloudera的Impala JDBC驱动程序及其所有依赖项的文件夹。我已将驱动程序类名设置为:

com.cloudera.impala.jdbc4.Driver

连接URL类似于:

jdbc:impala://server:port/default;AuthMech=0

启用控制器服务不会导致错误,但启用ExecuteSQL时会引发异常:

无法处理会话,因为java.lang.NoClassDefFoundError:无法初始化类com.cloudera.impala.core.ImpalaJDBCDriver:无法初始化类com.cloudera.impala.core.ImpalaJDBCDriver

有什么想法吗

编辑:

更新驱动程序后,我收到一个不同的异常:
无法执行查询select*from table_name limit 1;由于org.apache.nifi.processor.exception.ProcessException:org.apache.commons.dbcp.SQLNestedException:无法为连接URL“JDBC:impala://server:port/db;AuthMech=0;'。没有要路由到失败的流文件:org.apache.commons.dbcp.SQLNestedException:无法为连接URL“JDBC:impala://server:port/db;AuthMech=0;'

堆栈跟踪: 从nifi-app.log:


​重启服务器后,它突然工作了。真奇怪。无论如何谢谢你

您是否设置了属性数据库驱动程序位置?您使用的是哪个版本的NiFi?还有,驱动程序所在的平面目录中是否有所有依赖项,或者是否有子文件夹?@tonykova我有。@mattyb 1.4.0,是的,没有子文件夹。@mattyb我有一个新错误..\:老兄,我花了好几个小时试图弄明白为什么它不起作用,什么时候找到你的帖子。重新启动Nifi服务,连接开始正常工作。
java.lang.NoClassDefFoundError: Could not initialize class com.cloudera.impala.core.ImpalaJDBCDriver
 at java.lang.Classs.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.cloudera.dsi.core.impl.DSIDriverFactory.createDriver(Unknown Source)
at com.cloudera.jdbc.common.AbstractDriver.doInitialize(Unknown Source)
at com.cloudera.jdbc.common.AbstractDriver.connect(Unknown Source)
at org.apache.nifi.dbcp.DriverShim.connect(DriverShim.java:46)
at org.apache.commons.dbcpDriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory:1556)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.comons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.apache.nifi.dbcp.DBCPConnectionPool.getConnection(DBCPConnectionPool.java:272)
at sun.reflect.Method.invoke(Method.java:498)
at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler:89)
at com.sun.proxy.$Proxy453.getConnection(Unknown Source)
at org.apache.nifi.processors.standarad.ExecuteSQL.onTrigger(ExecuteSQL.java:199)
at org.apache.nifi.processor.AbsractProcessor.onTrigger(AbstractProcessor.java:27)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1119)
at org.apache.nifi.controller.tasks.ContinuallyRunPRocessorTask.call(ContinuallyRunProcessorTask.java:147)
org.apache.nifi.controller.tasks.ContinuallyRunPRocessorTask.call(ContinuallyRunProcessorTask.java:47)
at or.apache.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:128)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndREset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPool.Executor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)