Hi guys We plan to switch on impala server side to the newest CDH 6.2.0 release, hence we would like to upgrade as well the Cloudera JDBC connector from 2.6.4 to 2.6.9 (https://www.cloudera.com/documentation/other/connectors/impala-jdbc/Cloudera-JDBC-Driver-for-Impala-Release-Notes.pdf) . However as soon as we switch “ImpalaJDBC41.jar” to the new 2.6.9 version within Apache NiFi 1.9.2, we get the following stacktrace from NiFi if we start an ExecuteSQL processor. For me this looks like a logging library log4j incompatibility between NiFi 1.9.2 and the impala JDBC driver starting from release 2.6.6. The driver works in other tools like Zeppelin or DBVisualizer.
Would be great to see that working again. Any ideas how we get a fix or how we
can fix this issue?
Cheers Josef
2019-04-26 18:30:11,497 ERROR [Timer-Driven Process Thread-3]
o.a.nifi.processors.standard.ExecuteSQL
ExecuteSQL[id=5957fa4c-016a-1000-ffff-ffffcdfcd7bc]
ExecuteSQL[id=5957fa4c-016a-1000-ffff-ffffcdfcd7bc] failed to process session
due to java.lang.ExceptionInInitializerError; Processor Administratively
Yielded for 1 sec: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError: null
at
com.cloudera.impala.jdbc41.internal.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:72)
at
com.cloudera.impala.jdbc41.internal.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)
at
com.cloudera.impala.jdbc41.internal.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at
com.cloudera.impala.jdbc41.internal.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at
com.cloudera.impala.jdbc41.internal.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at
com.cloudera.impala.jdbc41.internal.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at
com.cloudera.impala.jdbc41.internal.apache.thrift.transport.TIOStreamTransport.<clinit>(TIOStreamTransport.java:38)
at
com.cloudera.impala.hivecommon.api.TETSSLTransportFactory.createClient(Unknown
Source)
at
com.cloudera.impala.hivecommon.api.TETSSLTransportFactory.getClientSocket(Unknown
Source)
at
com.cloudera.impala.hivecommon.api.HiveServer2ClientFactory.createTransport(Unknown
Source)
at
com.cloudera.impala.hivecommon.api.ServiceDiscoveryFactory.createClient(Unknown
Source)
at
com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.establishConnection(Unknown
Source)
at
com.cloudera.impala.impala.core.ImpalaJDBCConnection.establishConnection(Unknown
Source)
at com.cloudera.impala.jdbc.core.LoginTimeoutConnection.connect(Unknown
Source)
at
com.cloudera.impala.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.cloudera.impala.jdbc.common.AbstractDriver.connect(Unknown
Source)
at
org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:53)
at
org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:291)
at
org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2395)
at
org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2381)
at
org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2110)
at
org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
at
org.apache.nifi.dbcp.DBCPConnectionPool.getConnection(DBCPConnectionPool.java:470)
at org.apache.nifi.dbcp.DBCPService.getConnection(DBCPService.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:87)
at com.sun.proxy.$Proxy133.getConnection(Unknown Source)
at
org.apache.nifi.processors.standard.AbstractExecuteSQL.onTrigger(AbstractExecuteSQL.java:222)
at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1162)
at
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:209)
at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar
AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError.
See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
at
com.cloudera.impala.jdbc41.internal.slf4j.impl.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:54)
... 43 common frames omitted
smime.p7s
Description: S/MIME Cryptographic Signature
