当前位置: 首页 > 知识库问答 >
问题:

NIFI:编写新处理器

楚煜
2023-03-14

我想做一个新的处理器,它将是GetFile和EvaluateXpath的重聚。有几个主题我感兴趣:

>

  • 现在我的nar文件超过20KB,而我的nifi无法运行它,我该如何缩小它?
  • 我想从文件夹中获取文件,读取它的数据并将其作为一个atribute放入新的flowfile中,然后将配置xml回滚到它的原始文件夹,如何将配置文件回滚到文件夹b代码?
  • 下面是我用来从xml配置文件中获取属性的简单代码

    XPathExpression start = xpath.compile("//*[local-name()='start']");
                    XPathExpression startDate = xpath.compile("//*[local-name()='startDate']");
                    XPathExpression endDate = xpath.compile("//*[local-name()='endDate']");
                    XPathExpression runAs = xpath.compile("//*[local-name()='run']");
                    XPathExpression patch = xpath.compile("//*[local-name()='patch Information']");
    Object resultStart = start.evaluate(doc, XPathConstants.STRING);
                    NodeList nodes = (NodeList) resultStart;
                    flowFile = session.putAttribute(flowFile, "start", String.valueOf(nodes.item(nodes.getLength()-1)));
    

    Map attributes=getAttributesFromFile(如果(attributes.size()>0){flowFile=session.putallattributes(flowFile,attributes);}

    但它不能正常工作,我应该改变什么?

  • 共有1个答案

    狄法
    2023-03-14

    正如这里的回答,我不相信这个用例需要定制处理器开发。使用gethdfs和Keep source file:true设置将文件维护在原始位置,并使用executexpath和各种XPath值将数据从内容提取到flowfile属性中。您还可以使用listhdfsfetchhdfs的组合来将XML文件保存在HDFS中,因为NiFi将维护它所看到的文件的状态。

     类似资料:
    • 我正在尝试使用ExecuteSQL处理器从oracle数据库中提取数据。我有一些查询,例如假设在我的oracle数据库中有15条记录。在这里,当我运行ExecuteSQL处理器时,它将作为一个流进程连续运行,并将整个记录作为一个文件存储在HDFS中,并且重复这样做。因此,在HDFS位置中会有许多文件,这些文件将从oracle db中提取已经提取的记录,并且这些文件包含相同的数据。我如何使该处理器以

    • 我正在使用Tailfile处理器从计划每分钟运行的集群(3个节点)中获取日志。日志文件名每小时都会发生变化,我不知道应该使用哪种跟踪模式。如果我使用单个文件,它不会获取1小时后生成的新文件。如果我使用多文件,它是在文件名更改第三分钟后获取文件,这增加了文件的大小。我的文件的滚动文件名应该是什么,我应该使用哪种模式。你能让我知道吗。谢谢。 tail:retrieve-${now():format(“

    • 有一个特定的处理器,正如下面提到的,我对它感兴趣,与1.2.0相比,1.5.0中有一个额外的特性,所以我想使用它。 我看到有两种方法。 以上处理器存储为nifi-standard-nar-x.x.x.nar-unpacked文件。所以只需从1.5.0复制Nar,并将其放在1.2.0上即可。在此之后,我不确定nifi是否会识别这个新的处理器版本? 上面的处理器是下面文件的一部分,因此从它中创建一个新

    • Apache NIFI“ExecutesQL处理器”能否以“X”MB为单位流式传输大量的选择结果?

    • 我试图加载一个自定义的NiFi处理器,但无法让NiFi加载所有的.nar依赖项,尽管尝试了各种pom.xml配置。我在SO上遇到过一些类似的问题,但还没有找到这个问题的答案。

    • 我在运行FetchElasticSearch处理器时出现了奇怪的错误,下面是错误。 FetChelasticSearch[ID=F2B2FEE3-B940-4A73-8A28-0436E765C9A2]无法读取到Elasticsearch中,原因是没有配置的节点可用:[{#Transport#-1}{127.0.0.1}{localhost/127.0.0.1:9500}],这可能表示配置错误(主