使用参数从nifi执行java程序

时间:2017-05-16 15:03:49

标签: minify hortonworks-data-platform apache-nifi hortonworks-sandbox

我想从cassandra数据库中取一些术语,然后将它们作为参数发送到java程序,这将输出一些我需要保存在cassandra数据库中的数据。

这是否可以使用nifi,如果是,可以使用哪些处理器?特别是为了执行java程序,因为我已经看到cassandra的处理器已经存在。

谢谢!

1 个答案:

答案 0 :(得分:3)

Apache NiFi提供了许多运行自定义Java代码的选项:

  • 外部流程 - Apache NiFi ExecuteProcessExecuteStreamCommand处理器可用于运行任何外部进程并将输出作为flowfile内容返回。 ExecuteProcess不传递输入流,其中ExecuteStreamCommand通过stdin流式传输输入流文件内容。两个处理器都接受使用NiFi Expression Language格式化的参数。这些处理器并不关心您的进程是否为Java,它只是作为外部进程运行。这可能是运行代码的最快,最简单的方法。
  • 自定义处理器 - 您还可以创建自定义处理器,以更NiFi原生的方式运行Java代码。这需要一些额外的工作,但如果这是一个问题,将为大批量提供最佳性能。 NiFi Developer Guide可以提供帮助。
  • 脚本 - 第三种方法是使用ExecuteScriptInvokeScriptedProcessor处理器来运行使用自定义Java代码的Groovy脚本。这是尝试将代码作为自定义NiFi处理器运行的好方法,而无需编写完整处理器实现的所有开销。