【问题标题】:Apache Nifi: singleton instance python process - ExecuteStreamCommand or similarApache Nifi:单例实例 python 进程 - ExecuteStreamCommand 或类似
【发布时间】:2020-03-19 11:19:29
【问题描述】:

Apache NiFi 新手。想知道是否可以实现该场景:

  • 有一个 Python 脚本能够从stdin 读取文件并将转换结果放入stdout
  • 脚本不能在 ExecuteScript 中定义,因为 NumPy 是一个依赖项
  • 脚本初始化非常耗时
  • 脚本将几 GB 的数据字典加载到内存中,这是进行转换所必需的

有没有办法在 NiFi 处理器中托管此类脚本的单例实例?实例的生命周期应持续到处理器停止。

目标是避免对每个流文件进行昂贵的脚本初始化和相关的内存重新分配。

相关问题:NiFi 是否允许缓冲流文件并将集合作为一个整体传递给处理器?

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    你不能用 ExecuteStreamCommand 做singleton instance

    不过有一些想法:

    singleton instance - 重新编写你的 python 脚本以通过 http 接收/回复流文件,启动一次,这就像你想要的,除了启动停止要求

    buffer flow files and pass a collection

    • 使用 tar 格式的 mergecontent 将多个流文件放在一个 tarball 存档中,
    • 然后使用您的 python 脚本处理 tar 中的所有文件,并返回包含已处理文件的新 tarball
    • 然后在 nifi 中解压 tar 文件

    【讨论】:

    • 是的,脚本即服务也是一个考虑的选项。谢谢
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 2020-04-13
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多