Created 12-08-2017 07:12 AM
I am new to NIFI, and getting following error while I am trying to access Teradata database(production environment) using
querydatabasetable processor from Nifi. I have tried telnet command to teradata port 1025 from command line and its connecting.
2017-12-07 17:00:11,753 ERROR [StandardProcessScheduler Thread-4] o.a.n.p.standard.QueryDatabaseTable QueryDatabaseTable[id=2f70c1e5-0160-1000-0000-0000077bf1a3] QueryDatabaseTable[id=2f70c1e5-0160-1000-0000-0000077bf1a3] failed to invoke @OnScheduled method due to java.lang.RuntimeException: Failed while executing one of processor's OnScheduled task.; processor will not be scheduled to run for 30 seconds: java.lang.RuntimeException: Failed while executing one of processor's OnScheduled task.
2017-12-07 17:00:11,761 ERROR [StandardProcessScheduler Thread-8] org.apache.nifi.engine.FlowEngine A flow controller task execution stopped abnormally
java.util.concurrent.ExecutionException: java.lang.reflect.InvocationTargetException
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_77]
at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_77]
at org.apache.nifi.engine.FlowEngine.afterExecute(FlowEngine.java:100) ~[na:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1150) [na:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.GeneratedMethodAccessor558.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:137) ~[na:na]
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:125) ~[na:na]
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:70) ~[na:na]
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:47) ~[na:na]
at org.apache.nifi.controller.StandardProcessorNode$1$1.call(StandardProcessorNode.java:1244) ~[na:na]
at org.apache.nifi.controller.StandardProcessorNode$1$1.call(StandardProcessorNode.java:1240) ~[na:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_77]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_77]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77]
... 2 common frames omitted
Caused by: org.apache.nifi.processor.exception.ProcessException: Unable to communicate with database in order to determine column types
at org.apache.nifi.processors.standard.AbstractDatabaseFetchProcessor.setup(AbstractDatabaseFetchProcessor.java:189) ~[na:na]
at org.apache.nifi.processors.standard.QueryDatabaseTable.setup(QueryDatabaseTable.java:164) ~[na:na]
... 15 common frames omitted
Caused by: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.00.00.23] [Error 3807] [SQLState 42S02] Object 'DIM_PROD' does not exist.
at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException(ErrorFactory.java:309) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.statemachine.ReceiveInitSubState.action(ReceiveInitSubState.java:103) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.subStateMachine(StatementReceiveState.java:311) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.action(StatementReceiveState.java:200) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.statemachine.StatementController.runBody(StatementController.java:137) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.statemachine.StatementController.run(StatementController.java:128) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.TDStatement.executeStatement(TDStatement.java:389) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.TDStatement.executeStatement(TDStatement.java:331) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.TDStatement.doNonPrepExecuteQuery(TDStatement.java:319) ~[terajdbc4.jar:16.00.00.23]
at com.teradata.jdbc.jdbc_4.TDStatement.executeQuery(TDStatement.java:1121) ~[terajdbc4.jar:16.00.00.23]
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[na:na]
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[na:na]
at org.apache.nifi.processors.standard.AbstractDatabaseFetchProcessor.setup(AbstractDatabaseFetchProcessor.java:173) ~[na:na]
... 16 common frames omitted
Created on 12-08-2017 02:05 PM - edited 08-17-2019 07:28 PM
As per your logs
Caused by: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.00.00.23] [Error 3807] [SQLState 42S02] Object 'DIM_PROD' does not exist.
dim_prod does not exist make sure you are connecting to right database.
In your JDBC connection string in connection pool, if you have mentioned database name then check the table dim_prod exists in that database.
Sample Teradata JDBC connection string:-
Make sure you are having the below jars in your nifi lib path.
Teradata Connection Pool Configs:-
If above jars not in nifi lib path then you need to give path to all those jars with comma separated list.
Database Driver Location(s) | Comma-separated list of files/folders and/or URLs containing the driver JAR and its dependencies (if any). For example '/var/tmp/mariadb-java-client-1.1.7.jar' Supports Expression Language: true |
For both cases
Database Driver Class Name property should be
com.teradata.jdbc.TeraDriver
Created on 12-08-2017 02:05 PM - edited 08-17-2019 07:28 PM
As per your logs
Caused by: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.00.00.23] [Error 3807] [SQLState 42S02] Object 'DIM_PROD' does not exist.
dim_prod does not exist make sure you are connecting to right database.
In your JDBC connection string in connection pool, if you have mentioned database name then check the table dim_prod exists in that database.
Sample Teradata JDBC connection string:-
Make sure you are having the below jars in your nifi lib path.
Teradata Connection Pool Configs:-
If above jars not in nifi lib path then you need to give path to all those jars with comma separated list.
Database Driver Location(s) | Comma-separated list of files/folders and/or URLs containing the driver JAR and its dependencies (if any). For example '/var/tmp/mariadb-java-client-1.1.7.jar' Supports Expression Language: true |
For both cases
Database Driver Class Name property should be
com.teradata.jdbc.TeraDriver
Created 12-11-2017 05:55 AM
thanks, I was missing "/database" in connection URL.
Created on 04-06-2018 09:41 AM - edited 08-17-2019 07:27 PM
Iam new to NIFI i want to sqoop the data from Mysql to Hive,and i am using HDP 2.6,I have configured QueryDatabasetable Processor with DBCP and enable the same but when iam trying to start the processor i could see the below error.Please help me out.