apache-nifi - Apache Nifi:单例实例 python 进程 - ExecuteStreamCommand 或类似
问题描述
Apache NiFi 的新手。想知道是否可以实现该场景:
- 有一个 Python 脚本能够读取文件
stdin
并将转换结果放入stdout
- 该脚本无法在 ExecuteScript 中定义,因为 NumPy 是一个依赖项
- 脚本初始化非常耗时
- 该脚本将几 GB 的数据字典加载到内存中,这是进行转换所需的
有没有办法在 NiFi 处理器中托管此类脚本的单例实例?实例的生命周期应持续到处理器停止。
目标是避免昂贵的脚本初始化每个流文件和相关的内存重新分配。
相关问题:NiFi 是否允许缓冲流文件并将集合作为一个整体传递给处理器?
解决方案
你不能用 ExecuteStreamCommandsingleton instance
但是一些想法:
singleton instance
- 修改你的python脚本以通过http接收/回复流文件,启动一次,这就像你想要的,除了开始-停止要求
buffer flow files and pass a collection
:
- 使用 tar 格式的 mergecontent 将多个流文件放在一个 tarball 存档中,
- 然后使用您的 python 脚本处理 tar 中的所有文件并返回带有已处理文件的新 tarball
- 然后在 nifi 中提取 tar 存档
推荐阅读
- xaml - 与不同尺寸的手机不一致
- c# - 项目发布后路由到 ASP NET MVC 中的区域的问题
- storage - 从谷歌云存储查看图像?
- kubernetes - 如何在 stable/prometheus 图表 values.yaml 中包含来自另一个 yaml 文件的普罗米修斯规则?
- mysql - 如何在 Perl 中从 MySQL 获取最后一个错误
- c# - 从 DB.Entity 设置默认 POCO 属性值
- typescript - 打字稿:使接口属性成为必需
- pyomo - Pyomo:我们可以设置一个空索引的参数吗?
- opencv - opencv:CV_8SC1 vs CV_8UC1 - 负值是否映射到/视为0?
- r - 使用函数更改ggplot中的轴中断