S3 强一致性是否意味着将 S3 用作 Spark Structured Streaming 应用程序的检查点位置是安全的?

Does S3 Strong Consistency mean it is safe to use S3 as a checkpointing location for Spark Structured Streaming applications?

过去,普遍的共识是您不应将 S3 用作 Spark Structured Streaming 应用程序的检查点位置。

但是,现在 S3 提供 strong read after write consistency,使用 S3 作为检查点位置安全吗?如果不安全,为什么?

在我的实验中,我继续在我的 Spark Structured 流应用程序中看到与检查点相关的异常,但我不确定问题究竟出在哪里。

你真的回答了你自己的问题。您没有说明是在 Databricks 上还是在 EMR 上,所以我将假设为 EC2。

使用 HDFS 作为本地 EC2 磁盘上的检查点位置。

我现在的位置是使用 HDP 和 IBM S3 的 HDFS,HDFS 仍用于检查点。

不是真的。你得到了列表和更新的一致性,但是重命名仍然被复制和删除所模拟......我认为标准检查点算法依赖于它。

hadoop 3.3.1 添加了一个新的 API,Abortable 来帮助自定义 S3 流检查点提交器 - 这个想法 os 检查点将直接写入目的地,但在中止检查点时中止写入。正常的 close() 将完成写入并显示文件。见 https://issues.apache.org/jira/browse/HADOOP-16906

据我所知,没有人做过真正的提交者。你有机会在那里做出贡献...