簡體   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