Spark S3最终一致性问题

时间:2018-11-19 13:51:31

标签: apache-spark amazon-s3

我有几个Spark作业,可将数据写入S3或从S3读取数据。偶尔(大约每周一次,大约3个小时),Spark作业将失败,但以下情况除外:

org.apache.spark.sql.AnalysisException: Path does not exist.

我发现这很可能是由于S3中的一致性模型所致,其中列表操作最终是一致的。 S3 Guard声称可以解决此问题,但是我处于不支持该实用程序的Spark环境中。

是否还有其他人遇到此问题并找到了合理的解决方法?

1 个答案:

答案 0 :(得分:1)

  • 如果您使用的是AWS EMR,则它们会提供一致的EMR。
  • 如果您使用的是Databricks:它们在其transactional IO中提供了一种一致性机制
  • HDP和CDH都随S3Guard一起提供
  • 如果您正在运行自己的家庭式Spark堆栈,请迁移到Hadoop 2.9+以获取S3Guard,甚至更好:零重命名S3A提交者的Hadoop 3.1。

否则,不要将S3用作直接的工作目的地。