Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何捆绑使用多个捆绑包的定制NiFi处理器?_Maven_Hadoop_Pom.xml_Apache Nifi - Fatal编程技术网

Maven 如何捆绑使用多个捆绑包的定制NiFi处理器?

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并重

我已经编写了一个定制的NiFi处理器,它使用一些Hadoop类,处理流文件并将流文件序列化到Avro

据我所知

  • 要使用Hadoop类而不将它们打包为NAR的一部分,我需要nifi Hadoop NAR捆绑和

  • 要将流文件内容序列化到Avro或从Avro序列化流文件内容,我需要RecordSetWriter和reader,它们是记录序列化服务api的一部分

如果我的假设是错误的,请纠正我

在我尝试将NAR部署到NiFi之前,我已经编写了代码并进行了测试,所有工作都按照预期进行

当我部署NAR并重新启动NiFi时,它抛出
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中捆绑这些依赖项是强制性的吗