Nifi:编写新的处理器

时间:2017-10-02 12:41:43

标签: xpath apache-nifi

我想制作新的处理器,这将是GetFile和EvaluateXpath的重聚,我有几个主题:

  1. 我如何缩小我的nar文件,现在它超过20kb并且我的nifi无法运行它?
  2. 我想从文件夹中获取文件读取它的数据并将其作为属性放入新的流文件中,然后将config xml回滚到它的原始文件夹,如何将我的配置文件回滚到文件夹b代码?
  3. 以下是我用于从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(filePath);             if(attributes.size()> 0){                 flowFile = session.putAllAttributes(flowFile,attributes);             }

  4. 但它确实无法正常工作,我应该改变什么?

1 个答案:

答案 0 :(得分:1)

回答here,我不相信这个用例需要自定义处理器开发。将GetHDFS保留源文件true设置一起使用以将文件保留在原始位置,并使用ExecuteXPath和各种XPath值从中提取数据将内容转换为flowfile属性。您还可以使用ListHDFSFetchHDFS的组合将XML文件保存在HDFS中,因为NiFi将维护它所看到的文件的状态。