使用 Spot 实例在 AWS Batch 中对许多 S3 文件进行大规模批量操作的良好技术

使用 Spot 实例在 AWS Batch 中对许多 S3 文件进行大规模批量操作的良好技术

我在 S3 上存储了数百万个文件中的大量文本数据。我经常想对每个文件执行某些操作,这些操作只使用该文件并从中创建一个新文件。通常,我会使用公司的 DataBricks 来实现这一点,但它的锁定程度很高,很难在那里部署复杂的代码。

我一直在考虑使用 AWS Batch 和 Spot 实例来替代 DataBricks 来完成其中一些任务。我当然希望使用多个节点,因为最大的单个节点无法在合理的时间范围内完成工作。当然,也有专为分布式计算而设计的技术,比如 Apache Spark,但我 (a) 对自己建立自己的 Spark 集群的能力没有信心,(b) 不相信 Spark 对于如此简单的分布式计算任务是必需的。从根本上讲,我所需要的只是让节点传达它们计划处理哪些文件、它们完成了什么以及它们何时关闭。将所有这些信息保存在数据库中会很简单,尽管很乏味,而且我不需要将所有数据转换成另一个分布式文件系统。

是否存在适合这种用例的现有技术?

答案1

使用 Lambda 的 S3 批量操作是否可行?您需要提供对象列表和要在每个对象上运行的 lambda 函数。然后,S3 批量操作将使用每个对象名称运行 lambda 函数并向您提供结果报告。

https://docs.aws.amazon.com/lambda/latest/dg/services-s3-batch.html

相关内容