2017-01-30 50 views

回答

1

Apache NiFi是圍繞連續流假設而設計的。將連續流調整爲作業調度可能會非常棘手且困難,因爲它取決於您提供關於進程組何時「完成」的定義。 NiFi本身沒有任何一個過程組的概念被完成,只停止或運行。有一些事情你可能能夠做到:

  • 合併每個進程組的輸出傳遞到下一個進程組單flowfile(使用MergeContent,例如)。
  • 根據同步流的時間,使用CRON調度在每個組的入口處安排處理器。
  • 構建一個自定義處理器(或ExecuteScript),用於輪詢前一個進程組的完成條件。

所有這些真的歸結爲同一問題 - 你怎麼知道前面的組是「完成」?

1

每個進程組都有與其他進程組連接的關係。

嘗試將關係從第一個進程組拖到第二個進程組和第二個進程組到第三個進程組。

它要求您在第一個進程組中創建輸出端口,以便與第二個處理器的輸入端口連接。如果您不想在第二個進程組中使用第一個進程組的輸出,那麼只需在第二個進程組中使用'putFile'處理器編寫一個目錄,併爲我們的第二個進程組創建獨立流程。

試試這個,我會讓你知道,如果我能找到另一種方式來做到這一點。

+0

端口的使用在apache-nifi用戶guid中提到: 端口:使用一個或多個進程組構建的數據流需要一種將進程組連接到其他數據流組件的方法。這是通過使用端口來實現的。 DFM可以將任意數量的輸入端口和輸出端口添加到進程組,並適當命名這些端口。 https://nifi.apache.org/docs/nifi-docs/html/user-guide.html –

相關問題