首页 > 解决方案 > 使用 Kafka 将 10 TB 大小的大文件从 hdfs 发送到 S3

问题描述

我在 HDFS 中有一个大小为 10TB 的平面文件。我需要将数据写入 Kafka,然后保存到 Amazon S3。我正在为这项任务寻找不同的方法。根据之前提出的问题,我了解到可以由 Nifi 或 Spark 完成。但是,我不清楚它是如何实现的。

标签: apache-sparkamazon-s3apache-kafkaapache-nifilarge-files

解决方案


@icyanide 这是您描述的一个非常基本的 Nifi 用例。它应该工作得很好。你也可以用 spark 来做,但我个人更喜欢 NIFI,因为它易于编程,无需编写任何代码。

流程 1:列出/FetchHDFS -> PublishKafka

流程 2:ConsumeKafka -> putS3

流程 3:列出/FetchHDFS -> PublishKafka -> PutS3

流程4:List/FetchHDFS -> PutS3 -> PublishKafka -> 更下游的内容处理等。

一点警告,10tb 的大文件将成为获取它、将其复制到 s3 和/或对内容执行某些操作的处理工作负载。使您的 nifi 节点大规格,如果可以的话,集群多个节点,并且您希望并行处理多个 10tb 文件。如果您需要 Kafka 中的数据用于单独的下游事件,例如带有 s3 url 的元数据,我会直接使用 HDFS -> S3 -> PublishKafka (#4)。


推荐阅读