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

NiFi: Can't Write to Phoenix Using PutSQL on Kerberos-Secured Cluster

Hello, I'm trying to use the PutSQL NiFi processor to UPSERT data to Phoenix. It's failing with the following error:

2017-08-10 13:13:09,391 ERROR [Timer-Driven Process Thread-9]
PutSQL[id=a1a71e4b-100b-115d-1ef4-338f8a18516a] org.apache.nifi.processors.standard.PutSQL$$Lambda$359/12546984@f205090
failed to process due to org.apache.nifi.processor.exception.ProcessException:
org.apache.commons.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (Failed after attempts=35, exceptions:

My DBCPConnectionPool Controller Service is configured with (machine names etc obscured):

Database Connection URL: jdbc:phoenix:host1,host2,host3:2181:/

Database Driver Class Name: org.apache.phoenix.jdbc.PhoenixDriver

Database Driver Location(s): /usr/hdp/current/phoenix-client/phoenix-client.jar

I can confirm that my UPSERTs in the PutSQL processor are syntactically correct, and the Kerberos connection to Phoenix works when using I can also write to HBase using the HBase_1_1_2_ClientService from the PutHBaseJSON and PutHBaseCell processors (all secured by Kerberos).


NiFi: 1.3.0

Hadoop: HDP 2.4

Is there some configuration I've missed, or something I can try?




Is there more to that stacktrace?

Can you try adding the core-site.xml file to the "Database Driver Locations"?

Something like "/usr/hdp/current/phoenix-client/phoenix-client.jar,/etc/hadoop/conf/core-site.xml"

@Bryan Bende, I added /usr/hdp/current/hadoop-client/core-site.xml to the Database Driver Locations on the controller service. The results were the same as before.

I've attached the full trace, and events leading up to it, from the nifi-app.log (renamed as nifi-applog.txt for uploading).


New Contributor