Support Questions
Find answers, ask questions, and share your expertise

Connecting to Phoenix on kerberized cluster from NiFi's DBCP Connection Pool

Highlighted

Re: Connecting to Phoenix on kerberized cluster from NiFi's DBCP Connection Pool

New Contributor

Hi,

 

I did restart nifi , but the problem still persists.

 

The next release of nifi will add a new DBCP connection Pool: Hadoop DBCP connection pool:

https://issues.apache.org/jira/browse/NIFI-7257

It will, hopefully, solve the issue.

 

For my part, I implemented a specific connector which modifies the classpath:

https://github.com/dams666/nifi-dbcp-connectionpool

 

In short:

 

public static final PropertyDescriptor DB_DRIVER_LOCATION = new PropertyDescriptor.Builder()
.name("database-driver-locations")
.displayName("Database Driver Location(s)")
.description("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'")
.defaultValue(null)
.required(false)
.addValidator(StandardValidators.createListValidator(true, true, StandardValidators.createURLorFileValidator()))
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
.dynamicallyModifiesClasspath(true)
.build();

...

dataSource = new BasicDataSource();
dataSource.setDriverClassName(drv);
dataSource.setDriverClassLoader(this.getClass().getClassLoader());

 

But I still got same error message:

 

PutSQL[id=94d192a9-fd1d-3c59-99be-d848f8902968] Failed to process session due to java.sql.SQLException: Cannot create PoolableConnectionFactory (ERROR 103 (08004): Unable to establish connection.): org.apache.nifi.processor.exception.ProcessException: java.sql.SQLException: Cannot create PoolableConnectionFactory (ERROR 103 (08004): Unable to establish connection.)

 

My setup:

 

Database Connection URL :

jdbc:phoenix:zk4-xxx.ax.internal.cloudapp.net,zk5-xxx.ax.internal.cloudapp.net,zk6-xxx.ax.internal.cloudapp.net:2181:/hbase-unsecure

 

Database Driver Class Name:

org.apache.phoenix.jdbc.PhoenixDriver

 

Damien