1
votes

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.

  1. I had tried the whole workflow on local with the same setup and it works as it should be
  2. 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.

1

1 Answers

0
votes

I was able to solve this problem. For my case, there were other extra bundles in the cluster installation of Nifi (under the lib folder), which were causing the problem. One of the bundle was no longer needed and was causing the dependency conflict. Removing that bundle solved the problem