Hi,

I have developed some custom processors within single Maven project (lets
call this project custom-processors). These processors need Hadoop
dependencies (nifi-hadoop-nar), record-serde related dependencies
(nifi-record-serialization-service-api) and Kerberos dependencies apart
from usual NiFI dependencies.

In pom.xml file of NAR, when I mentioned "nifi-standard-services-api-nar"
as shown below

<dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-standard-services-api-nar</artifactId>
            <version>1.9.2</version>
            <type>nar</type>
</dependency>

NAR loading failed in NiFi with ClassNotFoundException. NiFi was not able
to find Hadoop related dependencies.

So to solve this problem I found 2 options:
1. either remove *provided* scope from all Hadoop dependencies and let
those jars get bundled in NAR but then I have to add all the dependencies
which can make NAR bulky
2. Mention "nifi-hadoop-nar" in NAR's pom.xml but with this approach NiFi
complains about NiFi related ClassNotFound and I have to add all the NiFI
dependencies in NAR

Now I understand that we can give only one NAR as a dependency in our
custom processor.

So I would like to know

1) what is the best way to specifiy multiple NiFi bundles in the processor?

2) Is it a good idea to put all the custom processors in single Maven
project or should I create separate Maven project for each custom processor?

Regards,
Chandra

Reply via email to