繁体   English   中英

在 Apache Nifi 中使用 ExecuteScript 不起作用

[英]Using ExecuteScript in Apache Nifi not working

我在附图中显示了以下流程。 我从另一个进程组接收 60 个流文件,我希望它们通过 Python 脚本,该脚本将使用 ExecuteScript 处理器执行。

在此处输入图像描述

现在的问题是我没有收到任何错误,但没有一个流文件通过一个简单的脚本作为“输入”传递给 go,它只是获取传入的流文件,将其删除,然后使用旧的流文件属性创建一个新文件。 我在队列中有一些记录,但它们根本没有进入执行脚本处理器。 我只是用这个简单的方法来测试我是否可以成功运行 python 脚本。 这是我的代码:

import java.io
from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback

flowFile = session.get()
attrMap = flowFile.getAttributes()
session.remove(flowFile)
newflowFile = session.create()
newflowFile = session.putAllAttributes(newflowFile, attrMap)
session.transfer(newflowFile, REL_SUCCESS)

这也是我的配置的图片。 没有其他任何改变。

在此处输入图像描述

我错过了什么吗?

编辑设置在此处输入图像描述 调度在此处输入图像描述

您的代码从 session 中删除传入的流文件,然后创建一个不相关的新流文件。 这不是脚本应该如何操作的。 框架检测到脚本没有正确处理数据(传入的流文件没有传输到任何关系),因此它不允许它完成并导致数据丢失。

您应该传入的流文件进行操作,然后将它们传输到适当的关系。 Apache NiFi 开发人员指南 - 通用处理器模式Matt Burgess 的博客中提供了更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM