Apache Nifi执行进程处理器

时间:2016-06-06 06:30:07

标签: apache-nifi

我正在尝试使用Apache Nifi实现以下工作流程:

  1. ExecuteSQL - 这是以avro格式从oracle数据库中获取数据
  2. PutHDFS - 这是将数据放入hdfs
  3. ExecuteProcess - 此处理器在后台执行bash脚本,后者又创建外部配置单元表
  4. 我有几个问题:

    Apache Nifi中的ExecuteProcess处理器是否接收传入的流文件?

    我无法为ExecuteProcess处理器提供任何incomming流文件。如果没有,有没有办法支持传入流文件?

2 个答案:

答案 0 :(得分:9)

ExecuteProcess不允许传入的流文件。看一下ExecuteStreamCommand处理器,它接受传入的流文件并执行外部命令。

答案 1 :(得分:3)

这种方法(使用ExecuteStreamCommand)应该适用于当前的NiFi版本。 NiFi 1.0.0将有一个ConvertAvroToORC处理器,它可以将来自ExecuteSQL的Avro记录转换为更高效的Hive格式,并且还生成(进入属性)创建表所需的Hive DDL(如果它没有已经存在)。还有一个可以执行该DDL的PutHiveQL处理器。

这应该在上面的流程中删除了对ExecuteStreamCommand的需求。当NiFi 1.0.0发布时,我将在https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates发布一个示例模板。