【问题标题】:Sending large file of 10 TB size from hdfs to S3 using Kafka使用 Kafka 将 10 TB 大小的大文件从 hdfs 发送到 S3
【发布时间】:2020-08-04 15:33:07
【问题描述】:

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

【问题讨论】:

  • 不太清楚你想做什么......你想使用nifi从HDFS获取10TB文件,然后将数据写入Kafka?或者您已经在 Kafka 中拥有数据,并且您想使用 NiFi 读取数据并将其批处理并将大文件写入 HDFS/S3?
  • 我更新了问题。你现在可以检查一下吗?
  • NiFi 有处理器 PublishKafka 和 ConsumeKafka,它有一个用于写入 S3 的处理器,称为 PutS3Object

标签: apache-spark amazon-s3 apache-kafka apache-nifi large-files


【解决方案1】:

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

流程 1:列出/FetchHDFS -> 发布Kafka

流程 2:ConsumeKafka -> putS3

流程 3:List/FetchHDFS ->PublishKafka -> PutS3

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

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

【讨论】:

  • 如何在 spark 上完成?如果我们将所有 10tb 加载到 spark 中并将其发布到 kafka,它会立即发生吗?我还在寻找一种将其限制为每天 2-3 TB 的选项。
猜你喜欢
  • 2016-04-12
  • 2020-11-10
  • 2020-03-05
  • 1970-01-01
  • 2015-11-26
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多