We have a NIFI instance (version 1.7.1) running on a cluster.
Use case
I am trying to setup a simple workflow where I need to read some files from GCS buckets and write it to some destination.
Workflow
As part of the first step, I added a simple workflow where I added a ListGCSBucket Processor and attached it to the LogAttribute Processor
As part of the ListGCSBucket, I also added a GCPCredentialsControllerService in which I gave the path for my configuration json. I also added the appropriate properties of bucket and project_id in the ListGCSBucket processor
Problem
On enabling the GCPCredentialsControllerService I am getting the following error:
GCPCredentialsControllerService[id=77057ab9-016b-1000-0000->00001c66566a] Failed to invoke @OnEnabled method due to >java.lang.NoClassDefFoundError: >com/google/api/client/http/HttpTransport: >com/google/api/client/http/HttpTransport
Troubleshooting Steps taken so far
These are the following step I had already performed.
- I had tried the whole workflow on local with the same setup and it works as it should be
- I compared the .nar bundles (org.apache.nifi - nifi-gcp-nar) used by the GCPCredentialsControllerService in both local and the cluster and both have the same .nar packages. I verified if the .nar contained the com/google/api/client/http/HttpTransport dependency or not and it does.
So I am really stuck now and had no other way to debug this problem, I searched online and couldn't find anything similar online. If someone can help I would really appreciate that.