NiFi-1.0 - content_repo & flowfile_repo
NiFi-1.0 - content_repo & flowfile_repo
我有一个流程,相当大,它需要一个 csv,然后最终将其转换为 sql 语句(通过 avro,json)。
对于 5GB 的文件,flowfile_repo(处理时)增加到 24 GB,content_repo 增加到 18 GB。
- content_repo 最大 18 GB
- flowfile_repo 最大 26 GB
有没有办法预测我需要多少 space 来处理 N 个文件?
为什么需要这么多 space ?
默认情况下,流文件repo每2分钟检查一次,并存储每个流文件的状态以及每个流文件的属性。因此,这实际上取决于在那 2 分钟内写入了多少流文件和每个流文件有多少属性 window,以及流文件通过了多少处理器以及其中有多少正在修改属性。
内容仓库正在存储内容声明,其中每个内容声明包含一个或多个流文件的内容。定期有一个清理线程运行并确定是否可以清理内容声明。这取决于您是否启用了存档。如果禁用它,则当没有活动流文件引用该声明中的任何内容时,可以清除内容声明。
流文件内容也遵循写时复制模式,这意味着内容是不可变的,当处理器修改内容时,它实际上是在写入一个新副本。因此,如果您有一个 5GB 的流文件,并且它通过一个修改了内容的处理器(如 ReplaceText),它会向内容存储库写入另外 5GB,并且可以根据上面关于归档的逻辑以及是否有任何内容删除原始文件流文件引用该内容。
如果您对更多信息感兴趣,这里有一份关于所有这些工作原理的深入文档:
https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html
我有一个流程,相当大,它需要一个 csv,然后最终将其转换为 sql 语句(通过 avro,json)。 对于 5GB 的文件,flowfile_repo(处理时)增加到 24 GB,content_repo 增加到 18 GB。
- content_repo 最大 18 GB
- flowfile_repo 最大 26 GB
有没有办法预测我需要多少 space 来处理 N 个文件? 为什么需要这么多 space ?
默认情况下,流文件repo每2分钟检查一次,并存储每个流文件的状态以及每个流文件的属性。因此,这实际上取决于在那 2 分钟内写入了多少流文件和每个流文件有多少属性 window,以及流文件通过了多少处理器以及其中有多少正在修改属性。
内容仓库正在存储内容声明,其中每个内容声明包含一个或多个流文件的内容。定期有一个清理线程运行并确定是否可以清理内容声明。这取决于您是否启用了存档。如果禁用它,则当没有活动流文件引用该声明中的任何内容时,可以清除内容声明。
流文件内容也遵循写时复制模式,这意味着内容是不可变的,当处理器修改内容时,它实际上是在写入一个新副本。因此,如果您有一个 5GB 的流文件,并且它通过一个修改了内容的处理器(如 ReplaceText),它会向内容存储库写入另外 5GB,并且可以根据上面关于归档的逻辑以及是否有任何内容删除原始文件流文件引用该内容。
如果您对更多信息感兴趣,这里有一份关于所有这些工作原理的深入文档:
https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html