2017-11-23 12 views
1

DBCPConnectionPoolを使用して、impalaとJDBCで接続します。ExecFiSQLを使用すると、NiFi DBCPConnectionPoolがNoClassDefFoundErrorをスローする

私は、ClouderaのImpala JDBC Driverとそのすべての依存関係を含むフォルダを指しています。接続URLは、そのようなものになります

com.cloudera.impala.jdbc4.Driver

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

はコントローラサービスを有効にすると、エラーが発生していないが、私はは、ExecuteSQLを有効にすると、それが例外をスロー:私はとドライバのクラス名を設定しています

failed to process session due to java.lang.NoClassDefFoundError: Could not initialize class com.cloudera.impala.core.ImpalaJDBCDriver: Could not initialize class com.cloudera.impala.core.ImpalaJDBCDriver

どのような考えですか?

編集:私は、ドライバを更新したとき

、私は別の例外を受け取っ: Unable to execute query select * from table_name limit 1; due to org.apache.nifi.processor.exception.ProcessException: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.cloudera.impala.jdbc41.Driver' for connect URL 'jdbc:impala://server:port/db;AuthMech=0;'. No FlowFile to route to failure: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.cloudera.impala.jdbc41.Driver' for connect URL 'jdbc:impala://server:port/db;AuthMech=0;'.

スタックトレース:nifi-app.logから :

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) 
+0

プロパティデータベースドライバの場所を設定しましたか? – tonykoval

+0

あなたはどのNiFiのバージョンを使用していますか?また、ドライバとフラットディレクトリ内のすべての依存関係ですか?または、サブフォルダがありますか? – mattyb

+0

@tonykoval私は持っています。 –

答えて

1

サーバの再起動後、突然動作しました。本当に奇妙です。とにかくありがとう!

+0

男私は何故動作しなかったのか、いつあなたの投稿を見つけたのか分かりませんでした。再起動したNifiサービスと接続が青色から機能し始めました。 – mishkin

関連する問題