将小文件存储在 hdfs 中并在 Nifi Flow 中存档

Posted

技术标签:

【中文标题】将小文件存储在 hdfs 中并在 Nifi Flow 中存档【英文标题】:Storing small files in hdfs and archiving them in Nifi Flow 【发布时间】:2020-12-08 12:43:46 【问题描述】:

我对小文件和 HDFS 有疑问。

场景:我正在使用 NiFi 读取来自 Kafka 主题的消息,这些消息都非常小。

要求:在对它们进行进一步处理之前将这些原始数据消息存储在 HDFS 中(用于重播能力)。

我正在考虑定期在它们上使用 Hadoop Archive (HAR)。那是我可以通过 NiFi 做的事情吗? har 命令似乎是一个命令行的东西,而不是我可以通过 Nifi 执行的东西?很想知道一个可以满足我要求的解决方案,而不会因为文件小而降低 HDFS。

吉尼尔

【问题讨论】:

【参考方案1】:

您可以使用 ExecuteProcess 处理器在 Nifi 中执行命令行:

http://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.6.0/org.apache.nifi.processors.standard.ExecuteProcess/

您还可以查看 Kafka-connect HDFS 以将 kafka 记录放入 HDFS。

【讨论】:

以上是关于将小文件存储在 hdfs 中并在 Nifi Flow 中存档的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NiFi 中跟踪 HDFS Active Namenode 更改事件?

Apache Nifi 解压

Apache Nifi 将文件移动到新的 hdfs 文件夹以获取小于当前日期的文件

将压缩的文本文件发布到 apache nifi

使用 NiFi 写入启用 MFA 的 AWS S3 存储桶

如何在 Impala 中存储图像文件