amazon-web-services - Apache Spark/AWS EMR 和处理文件的跟踪
问题描述
我有存储大量 JSON 文件的 AWS S3 文件夹。我需要使用 AWS EMR over Spark 对这些文件进行 ETL,并将转换存储到 AWS RDS 中。
为此,我在 Scala 上实现了 Spark 作业,一切正常。我计划每周执行一次这项工作。
有时,外部逻辑可以将新文件添加到 AWS S3 文件夹,因此下次我的 Spark 作业开始时,我只想处理新的(未处理的)JSON 文件。
现在我不知道在哪里存储有关已处理 JSON 文件的信息,以便 Spark 作业可以决定要处理哪些文件/文件夹。您能否告诉我使用 Spark/AWS 跟踪此更改的最佳实践(以及如何)是什么?
解决方案
如果它是火花流工作,checkpointing
是您正在寻找的,在这里讨论。
Checkpoint
ing 将状态信息(即偏移量等)存储在 hdfs/s3 存储桶中,因此当再次启动作业时,spark 只会拾取未处理的文件。检查点在发生故障时也提供了更好的容错能力,因为状态是由 spark 本身自动处理的。再次检查点仅适用于 spark 作业的流模式。
推荐阅读
- r - 删除字符串中特定字符后的 n 个字符
- entity-framework-core - 从 dotnet CLI 搭建 oracle 数据库
- python - 如何在不破坏 RAM 的情况下附加这两个数组?
- javascript - 包含其他对象的 Joi 验证器对象
- android - 如何使用 kotlin 使用 android 设置默认相机
- rest - REST API - 请求参数中的特殊字符
- r - 如何直接用向量标记数据框的列名
- isabelle - 在没有 GUI 的情况下与 Isabelle 交互
- python - 尝试导入“matplotlib”(已安装),出现以下错误:
- wordpress - 如何修复我的 localhost 或 apache 配置?