在Nifi ExecuteScript

时间:2017-09-19 03:20:40

标签: python-2.7 apache-nifi processor

当我在ExecuteScript处理器中运行python作业时会发生这种情况。

enter image description here

我已多次搜索答案,但无法找到有效的解决方案。

答案说我应该添加这样的代码来包含我的外部python库,我试试但是错误仍然存​​在。

import sys
sys.path.append('/usr/lib64/python2.7/site-packages')

我也在处理器中添加了module属性。但它仍然无法运作。

enter image description here

2 个答案:

答案 0 :(得分:1)

我的理解是,当您使用 ExecuteScript 处理器时,您不需要在import sys中使用Python脚本:这是隐式为您完成的。此外,由于您已在处理器配置中定义了“模块目录”属性,因此无需在脚本中将其添加到路径中。

我们无法再看到您的脚本中的第一行半。大概你在第4行有import siximport X from six

错误是说它在模块目录中找不到名为 six 的模块,因此可能的原因是:

  • 图书馆真的没有出现在该文件夹中
  • 您已在库中复制了错误版本的python(jython)
  • NiFi没有阅读图书馆的许可(你是如何在那里复制的?)

这里有关于加载python库的问题的其他问题,例如:

答案 1 :(得分:0)

我仍在解决此问题,但是我发现nifi设置中的工作目录始终是: /usr/hdf/3.3.1.0-10/nifi

无论模块目录设置为什么。