首页 > 解决方案 > 使用 NiFi 附加到 HDFS 中现有的 avro 文件

问题描述

我有这个 NiFi 流,它从 MQTT 代理获取 JSON 中的事件,根据某些标准对它们进行分组,将它们转换为 Avro 行,并且应该通过 Hadoop 集群中的文件输出它们。

我选择 Avro 作为存储格式,因为它能够将新数据附加到现有文件。

这些事件按源分组,理想情况下,我应该在 HDFS 中为每个事件源创建一个单独的 Avro 文件,因此 NiFi 会在每个文件出现时在每个文件中累积新事件(当然要进行适当的写入批处理,因为每个新事件都会发出写入)不是很好,我已经用 MergeContent 处理器解决了这个问题)。

我已经解决了流程,但我发现最后一步 PutHDFS 处理器与文件格式无关,也就是说,它不知道如何附加到现有的 Avro 文件。

我发现这个 pull request正是实现了这一点,但由于各种问题,它从未合并到 NiFi 中。

有没有办法用现有的 NiFi 处理器做到这一点?还是我必须推出了解如何附加到现有 Avro 文件的自定义 PutHDFS 处理器?

标签: hadoophdfsapache-nifiavro

解决方案


推荐阅读