apache-spark - 使用 Kafka 将 10 TB 大小的大文件从 hdfs 发送到 S3
问题描述
我在 HDFS 中有一个大小为 10TB 的平面文件。我需要将数据写入 Kafka,然后保存到 Amazon S3。我正在为这项任务寻找不同的方法。根据之前提出的问题,我了解到可以由 Nifi 或 Spark 完成。但是,我不清楚它是如何实现的。
解决方案
@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)。
推荐阅读
- sapui5 - 如何在 sap.m.UploadCollection 中获取文件的文件路径或二进制内容
- ruby-on-rails - nil:NilClass 的未定义方法“class_detail”
- excel - 如果 Second 值大于 Value,则删除行
- c# - (c#) WinForm和uwp如何实现端口通信
- vba - 检查工作簿中多个单元格字符串值的值与另一个工作簿中的行的匹配
- c# - C# Winforms Backgroundworker 错误 - 对象未设置为对象的实例
- php - 创建新的laravel项目时权限被拒绝
- python - Python Pyx plot:改变虚线中点之间的间距
- mariadb - MariaDB + MaxScale 复制错误:从 I/O 线程停止,因为在尝试 SELECT @master_binlog_checksum 时遇到致命错误
- python - django不同表数据合并