apache-nifi - 同步不/无法连接的 NiFi 进程组或流?
问题描述
就像问题状态一样,是否有某种方法可以同步在 UI 中无法/无法连接的 NiFi 进程组或管道?
例如。我有一个我想要的过程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 方式来做到这一点。对此的建议将不胜感激。谢谢。
解决方案
我不确定是什么要求阻止您将从 FTP 检索的文件直接写入所需的 HDFS 位置,或者如果这是“将n 个文件写入 HDFS 并以.
文件名开头,然后在达到某个特定阈值时全部重命名“ 设想。
ListHDFS
不接受任何传入关系,因为它不应该由传入事件触发,而是由计时器/CRON 时间表触发。每次运行时,它都会生成n 个流文件,每个流文件引用一个自上次执行以来已检测到要写入文件系统的 HDFS 文件。为此,处理器存储本地状态。
在这种情况下,您的流段不需要连接。您将拥有执行 FTP -> HDFS 写入GetFTP -> PutHDFS
的“流段 A”(您也可以使用FetchHDFS
)并移动它们(ListHDFS -> MoveHDFS
)。处理器将ListHDFS
持续运行,但如果它在运行期间未检测到任何新文件,它将简单地产生并执行无操作。一旦PutHDFS
处理器完成将文件写入 HDFS 文件系统的任务,在下一次ListHDFS
执行时,它将检测该文件并生成描述它的流文件。
您可以根据自己的喜好调整调度,但通常这是 NiFi 流程中非常常见的模式。
推荐阅读
- firefox - 在 FireFox uBlock Origin 中,如何在正斜杠后阻止任何内容?
- android-ndk - 如何使用android ndk 用介子编译glib 2.66?
- r - 使用 ggplot 创建折线图
- reactjs - 减少 Jhipster React 和 spring boot 构建时间
- javascript - 如何在组件内以角度创建模块?
- python - python - 当值是系列或数据框时,应用(lambda x:...)函数应用于字典值
- apache-kafka - 我们不能在 Kafka 中加入两个表并获取数据吗?
- html - 这即使将 html、body 和 div 设置为 height=100%,高度也不会填满整个页面
- sql-server - 使用宏的 Excel (MAC) 到 SQL Server 连接
- python - 当元组中每个位置的值来自不同的列表时,从元组序列中创建值的索引数组