【问题标题】:Why Apache NiFi MergeRecords processor is not merging number of records as per the configuration?为什么 Apache NiFi MergeRecords 处理器没有根据配置合并记录数?
【发布时间】:2019-03-28 08:16:22
【问题描述】:

我们正在通过 Kafka 主题从上游系统接收 Json 消息。要求是将这些消息以一定的时间间隔存储到 HDFS 中。由于我们要存储到 HDFS 中,我们希望将一定数量的这些记录合并到单个文件中。根据 NiFi documentation,我们为此使用 "MergeRecords" 处理器。

关于即将到来的记录:##

  • 这些是具有嵌套结构的多行 JSON 消息。
  • 它们基于相同的架构(它们是从单个 Kafka 主题中挑选出来的)
  • 这些是经过验证的消息,甚至 NiFi 处理器也能够解析它。所以从 Schema 的角度来看,JSON 消息显然没有问题

当前配置

以下是处理器配置的快照。 NiFi 版本:1.8

预期行为

对于上述配置,它期望 MergeRecords 应该对阈值之一进行加权,即 最大记录(100000) 或 最大 Bean 大小(100KBs)。

观察到的行为

但它观察到 bean 在达到任何一个阈值之前就已经很好地捆绑了。它仅针对 2 条 5KB 大小的记录触发 bean 形成。

如果您可以帮助分析和/或指出为什么 MergeRecord 处理器没有按照配置运行?

【问题讨论】:

  • 在 1 分钟的 Bin 时代,您是否获得了 2 条以上的记录?
  • 是的@Bryan Bende,我们尝试在 1 分钟内发送至少 20 条消息。

标签: java apache-nifi


【解决方案1】:

也许它没有等待最大记录 (100000) 或最大 Bean 大小(100KBs),因为它达到了您首先指定的 Max Bin Age(1 分钟)。

Max Bin Age 在文档中定义为:

将触发 Bin 完成的 Bin 的最大年龄。

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.8.0/org.apache.nifi.processors.standard.MergeRecord/index.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多