【问题标题】:NIFI EXECUTESCRIPT Processor failing - No MODULE FOUNDNIFI EXECUTESCRIPT 处理器失败 - 未找到模块
【发布时间】:2020-09-20 07:45:55
【问题描述】:

我正在尝试将模块导入 nifi 中的 executescript 处理器。 正如建议的那样,我给出了模块目录的完整路径。

示例: 模块目录:/var/lib/nifi/Levenshtein --> 其中包含脚本所需的文件。

此外,在脚本中,我还设置了指向使用该模块目录的系统路径 我的代码看起来像这样

import re
import datetime
import sys
sys.path.append('/var/lib/nifi/Levenshtein')

import Levenshtein

当我使用上述代码运行处理器时,它会失败。

错误:第 3 行没有名为 Levenshtein 的模块。

【问题讨论】:

  • @mattyb 如果你能帮忙的话。

标签: apache-nifi jython execute-script flowfile


【解决方案1】:

总结一下 Andy 所说的,这个Levensthein module 是用 C 编写的,不能由 Java 虚拟机执行,假设您正在运行 Jython 实现。

【讨论】:

  • 感谢@Bugbeeb 的解释。
【解决方案2】:

如果此特定库是“本机模块”(编译的 C 代码),Jython(ExecuteScript 使用的 Python 执行引擎)将无法加载它。 ExecuteScript 在 NiFi 中使用 Python 只能使用纯 Python 代码。

变通方法是使用ExecuteProcessExecuteStreamCommand,在命令行调用python <my_script.py>,可以处理各种Python版本、原生模块等。这个执行会发生在JVM之外,使用真实的Python,而不是 Jython。

【讨论】:

    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 2020-03-01
    • 2017-04-04
    • 1970-01-01
    • 2018-02-27
    • 2019-10-12
    • 2018-01-11
    • 2016-08-30
    相关资源
    最近更新 更多