Apache Spark / AWS EMR和已处理文件的跟踪

时间:2018-10-15 13:25:18

标签: amazon-web-services apache-spark amazon-emr

我有一个AWS S3文件夹,用于存储大量JSON文件。我需要使用Spark上的AWS EMR来ETL这些文件,并将转换存储到AWS RDS中。

为此,我已经在Scala上实现了Spark作业,并且一切正常。我计划每周执行一次这项工作。

外部逻辑会不时地将新文件添加到AWS S3文件夹中,因此,下次我的Spark作业启动时,我只想处理新的(未处理的)JSON文件。

现在,我不知道有关已处理JSON文件的信息的存储位置,因此Spark作业可以确定要处理的文件/文件夹。您能告诉我使用Spark / AWS跟踪此更改的最佳实践是什么(以及如何)?

1 个答案:

答案 0 :(得分:1)

如果这是火花流式作业,checkpointing是您所需要的,将在here中进行讨论。

  • Checkpoint ing将状态信息(例如,偏移量等)存储在hdfs / s3存储桶中,因此,当再次启动作业时,spark仅拾取未处理的文件。在发生故障的情况下,检查点还提供了更好的容错能力,因为状态是由火花本身自动处理的。

  • 再次检查点仅在spark作业的流模式下起作用。