【问题标题】:Execute a java program from nifi with parameters使用参数从 nifi 执行 java 程序
【发布时间】:2017-05-16 15:03:49
【问题描述】:
我想从 cassandra 数据库中获取一些术语,然后将它们作为参数发送到 java 程序,该程序将输出一些我需要保存在 cassandra 数据库中的数据。
nifi 是否有可能,如果可以,使用哪些处理器?专门用于执行 java 程序,因为我已经看到 cassandra 的处理器已经存在。
谢谢!
【问题讨论】:
标签:
minify
hortonworks-data-platform
apache-nifi
hortonworks-sandbox
【解决方案1】:
Apache NiFi 提供了许多运行自定义 Java 代码的选项:
-
外部进程 - Apache NiFi 的
ExecuteProcess 和 ExecuteStreamCommand 处理器可用于运行任何外部进程并将输出作为流文件内容返回。 ExecuteProcess 不传递输入流,其中 ExecuteStreamCommand 通过标准输入流式传输输入流文件内容。两个处理器都接受使用 NiFi 表达式语言格式化的参数。这些处理器不关心您的进程是否是 Java,它只是作为外部进程运行。这可能是运行代码最快、最简单的方法。
-
自定义处理器 - 您还可以创建自定义处理器,以更加 NiFi 原生的方式运行您的 Java 代码。这需要一些额外的工作,但如果这是一个问题,它将为大容量提供最佳性能。 NiFi Developer Guide 可以提供帮助。
-
脚本 - 第三种方法是使用ExecuteScript 或InvokeScriptedProcessor 处理器来运行使用您的自定义Java 代码的Groovy 脚本。这是尝试将代码作为自定义 NiFi 处理器运行的好方法,无需编写完整的处理器实现的所有开销。