gpt4 book ai didi

apache-nifi - Nifi 自定义处理器异常

转载 作者:行者123 更新时间:2023-12-01 09:52:20 32 4
gpt4 key购买 nike

我使用的是 Nifi 0.4.1 版本。我正在编写自定义代码以将 CSV 转换为 avro 格式。我已经创建了类文件并能够生成 nar 文件。将 nar 文件放在 lib 目录中并重新启动 nifi 服务器。

类文件没有任何错误或警告。

当将处理器拖动到 nifi 工作区时,我无法看到为将 csv 转换为 avro 而创建的类。

感谢任何帮助..

谢谢,

最佳答案

您可以检查几项来诊断您的处理器问题:

  1. 提供商配置文件
  2. 处理器类
  3. lib 目录下的 NAR
  4. nifi-app.log 中的 ExtensionManager 条目
  5. nifi-app.log 中的错误

听起来你已经检查了一些,但请确认所有这些:

供应商配置文件

您的处理器必须在与 Java 代码相同的 nar 文件中的服务配置文件中引用。该文件将被命名为 org.apache.nifi.processor.Processor,并且每行处理器实现将包含一个完全限定的类名。查看示例很有帮助,例如 provider config for nifi-solr-processors .

org.apache.nifi.processors.solr.PutSolrContentStream
org.apache.nifi.processors.solr.GetSolr

处理器类

确保您的处理器类是公共(public)的,实现了 org.apache.nifi.processor.Processor,继承自 org.apache.nifi.processor.AbstractProcessor,或者来自另一个处理器实现。您应该确保完全限定的类名与上面的提供程序配置文件匹配。

public abstract class SolrProcessor extends AbstractProcessor {
...
public class GetSolr extends SolrProcessor {
...
public class PutSolrContentStream extends SolrProcessor {
...

lib 目录下的 NAR

您的 nar 文件应该放在 NiFi 安装的 lib 目录中。如果这对您的设置很重要,请确保 NiFi 用户有权访问它。听起来你已经检查过了。

nifi-app.log 中的 ExtensionManager 条目

启动NiFi后,查看logs/nifi-app.log。 ExtensionManager 将输出从 lib 目录找到和加载的所有扩展的列表。它看起来像这样(为长度而编辑):

org.apache.nifi.nar.ExtensionManager Extension Type Mapping to Classloader:
=== ControllerService type || Classloader ===
org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderControllerService || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-aws-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.distributed.cache.server.DistributedSetCacheServer || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-distributed-cache-services-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.distributed.cache.client.DistributedSetCacheClientService || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-distributed-cache-services-nar-0.6.0-SNAPSHOT.nar-unpacked]
...
=== End ControllerService types ===
=== Processor type || Classloader ===
org.apache.nifi.processors.standard.GetHTTP || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-standard-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.script.ExecuteScript || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-scripting-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.aws.s3.DeleteS3Object || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-aws-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.standard.ExecuteSQL || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-standard-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.mongodb.GetMongo || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-mongodb-nar-0.6.0-SNAPSHOT.nar-unpacked]
...

您希望在此列表中找到您的处理器、 Controller 服务或报告任务。

nifi-app.log 中的错误

如果找到并加载,也可能会在您的代码运行时抛出异常,这也会出现在 nifi-app.log 中。例如,如果您在提供程序配置文件中输入了错误的类名,则会出现“找不到提供程序”错误:

java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider org.apache.nifi.processors.test.TestProcessor not found
at java.util.ServiceLoader.fail(ServiceLoader.java:239) ~[na:1.8.0_65]
at java.util.ServiceLoader.access$300(ServiceLoader.java:185) ~[na:1.8.0_65]
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372) ~[na:1.8.0_65]
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) ~[na:1.8.0_65]
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) ~[na:1.8.0_65]
at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:107) ~[nifi-nar-utils-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:88) ~[nifi-nar-utils-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.NiFi.<init>(NiFi.java:120) ~[nifi-runtime-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.NiFi.main(NiFi.java:227) ~[nifi-runtime-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]

关于apache-nifi - Nifi 自定义处理器异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35623082/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com