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] o.apache.nifi.processors.standard.PutSQL 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:/hbase-secure:email@example.com:/etc/security/keytabs/user.keytab
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 sqlline.py. I can also write to HBase using the HBase_1_1_2_ClientService from the PutHBaseJSON and PutHBaseCell processors (all secured by Kerberos).
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).