Maven 如何捆绑使用多个捆绑包的定制NiFi处理器?
我已经编写了一个定制的NiFi处理器,它使用一些Hadoop类,处理流文件并将流文件序列化到Avro 据我所知Maven 如何捆绑使用多个捆绑包的定制NiFi处理器?,maven,hadoop,pom.xml,apache-nifi,Maven,Hadoop,Pom.xml,Apache Nifi,我已经编写了一个定制的NiFi处理器,它使用一些Hadoop类,处理流文件并将流文件序列化到Avro 据我所知 要使用Hadoop类而不将它们打包为NAR的一部分,我需要nifi Hadoop NAR捆绑和 要将流文件内容序列化到Avro或从Avro序列化流文件内容,我需要RecordSetWriter和reader,它们是记录序列化服务api的一部分 如果我的假设是错误的,请纠正我 在我尝试将NAR部署到NiFi之前,我已经编写了代码并进行了测试,所有工作都按照预期进行 当我部署NAR并重
- 要使用Hadoop类而不将它们打包为NAR的一部分,我需要nifi Hadoop NAR捆绑和
- 要将流文件内容序列化到Avro或从Avro序列化流文件内容,我需要RecordSetWriter和reader,它们是记录序列化服务api的一部分
java.lang.ClassNotFoundException:org.apache.NiFi.serialization.RecordSetWriterFactory
exception
我的NAR的pom.xml如下所示:
<dependencies>
<dependency>
<groupId>com.my_company.is.data.tools</groupId>
<artifactId>custom-data-movement-processors</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-nar</artifactId>
<version>1.5.0</version>
<type>nar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-service-api</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-services</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
<dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-services-api</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
<dependency>
</dependencies>
com.my_company.is.data.tools
自定义数据移动处理器
1.0-快照
org.apache.nifi
nifi hadoop nar
1.5.0
纳尔
假如
org.apache.nifi
nifi记录序列化服务api
1.5.0
假如
处理器的pom.xml文件如下所示:
<dependencies>
<dependency>
<groupId>com.my_company.is.data.tools</groupId>
<artifactId>custom-data-movement-processors</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-nar</artifactId>
<version>1.5.0</version>
<type>nar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-service-api</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-services</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
<dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-record-serialization-services-api</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
<dependency>
</dependencies>
org.apache.nifi
nifi记录序列化服务
1.5.0
假如
org.apache.nifi
nifi记录序列化服务api
1.5.0
假如
由于我已将nifi-record-serialization-services-api
标记为provided
,因此它不会绑定到结果文件中。
现在我可以做一个快速修复,完全删除作用域并创建NAR,但NiFi会抱怨下一个类未找到错误
我想知道:
- 在NiFi项目的代码中,我发现了多个嵌套的bundle,它们之间的关系类似于NiFi nar bundles->NiFi--bundle->。如何在我的处理器中引用两个捆绑包?据我所知,定制处理器只能有一个父NAR和NAR=捆绑
- 在pom.xml中指定多个NiFi包的首选方法是什么
- 理想情况下,我不想在NAR文件中捆绑Hadoop相关依赖项或NiFi依赖项。或者在NiFi中捆绑这些依赖项是强制性的吗