与问题状态一样,是否有某种方法可以同步在UI中无法连接的NiFi流程组或管道?
EG。我有一个流程,我希望getFTP->putHDFS->moveHDFS
(最终实际上是getFTP->putHDFS->listHDFS->moveHDFS
,请参阅https://stackoverflow.com/a/50166151/8236733)。但是,listHDFS
似乎不接受任何传入连接。尝试对P1{getFTP->putHDFS->outport}->P2{inport->listHDFS->moveHDFS}
等进程组执行某些操作也会遇到同样的问题(listHDFS
似乎无法接收任何传入连接。在我们从moveHDFS
获取任何内容之前,我们不想getFTP
,但鉴于上述情况,我不知道如何以正确的顺序同步这些操作
NiFi的新手,但我想这是一个常见的用例,必须有一些NiFi-ish方式来做到这一点,我不知道。对此的建议将不胜感激。感谢。
答案 0 :(得分:0)
我不确定是什么要求阻止您将从FTP检索到的文件直接写入所需的HDFS位置,或者如果这是<34;将 n 文件写入HDFS使用.
启动文件名,然后在达到某个特定阈值时重命名为&#34;场景。
ListHDFS
不接受任何传入关系,因为它不应由传入事件触发,而是由计时器/ CRON计划触发。每次运行时,它都会生成 n 流文件,其中每个文件都引用自上次执行以来检测到要写入文件系统的HDFS文件。为此,处理器存储本地状态。
在这种情况下,您的流程段不需要连接。您将拥有&#34;流程段A&#34;执行FTP - &gt; HDFS写作(GetFTP -> PutHDFS
),你将拥有一个独立的&#34;流程段B&#34;列出HDFS目录,读取文件描述符(但不是文件的内容,除非你也使用FetchHDFS
)并移动它们(ListHDFS -> MoveHDFS
)。 ListHDFS
处理器将持续运行,但如果它在运行期间没有检测到任何新文件,它将简单地产生并执行无操作。一旦PutHDFS
处理器完成将文件写入HDFS文件系统的任务,在下一次ListHDFS
执行时,它将检测该文件并生成描述该文件的流文件。
您可以根据自己的喜好调整计划,但一般来说,这是NiFi流程中非常常见的模式。