apache nifi - 如何执行一个接一个的进程组

问题描述:

我已经创建了3个进程组。我希望第二个进程组在第一个进程组完成后执行,第三个进程组在第二个进程组完成后执行。apache nifi - 如何执行一个接一个的进程组

任何解决方案,请??

Apache NiFi是围绕连续流假设而设计的。将连续流调整为作业调度可能会非常棘手且困难,因为它取决于您提供关于进程组何时“完成”的定义。 NiFi本身没有任何一个过程组的概念被完成,只停止或运行。有一些事情你可能能够做到:

  • 合并每个进程组的输出传递到下一个进程组单flowfile(使用MergeContent,例如)。
  • 根据同步流的时间,使用CRON调度在每个组的入口处安排处理器。
  • 构建一个自定义处理器(或ExecuteScript),用于轮询前一个进程组的完成条件。

所有这些真的归结为同一问题 - 你怎么知道前面的组是“完成”?

每个进程组都有与其他进程组连接的关系。

尝试将关系从第一个进程组拖到第二个进程组和第二个进程组到第三个进程组。

它要求您在第一个进程组中创建输出端口,以便与第二个处理器的输入端口连接。如果您不想在第二个进程组中使用第一个进程组的输出,那么只需在第二个进程组中使用'putFile'处理器编写一个目录,并为我们的第二个进程组创建独立流程。

试试这个,我会让你知道,如果我能找到另一种方式来做到这一点。

+0

端口的使用在apache-nifi用户guid中提到: 端口:使用一个或多个进程组构建的数据流需要一种将进程组连接到其他数据流组件的方法。这是通过使用端口来实现的。 DFM可以将任意数量的输入端口和输出端口添加到进程组,并适当命名这些端口。 https://nifi.apache.org/docs/nifi-docs/html/user-guide.html –