首页 文章

spark savemode.append文件已经存在

提问于
浏览
0

我们在Amazon EMR(5.13)中的Spark作业内写入S3时遇到了罕见的问题 . 这是日志的一部分:

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 3 in stage 2.0 failed 4 times, most recent failure: Lost task 3.3 in stage 2.0 
...
Caused by: java.io.IOException: File already exists:s3://*****/part-00003-58fe4151-60d6-4605-b971-21dbda31678b-c000.snappy.orc
    at com.amazon.ws.emr.hadoop.fs.s3n.S3NativeFileSystem.create(S3NativeFileSystem.java:507)
...

它看起来很奇怪,因为我们使用SaveMode.Append来保存数据集:

input.write().mode(SaveMode.Append).orc(path);

我google了一下,发现了几个相同的问题(看here),但我们不使用spark.speculation,所以我不知道发生了什么 .

任何人都可以建议我在哪里可以搜索这个问题的根源?

1 回答

  • 0

    EMR代码已关闭,因此我无法对其内部进行评论 . 我知道如果没有一致的层,那么针对S3提交工作很容易发生罕见的失败,无论是可见的(这里),还是只是丢失数据,因为虚假的目录重命名会在列出路径下的内容时错过新文件 .

    尝试使用本地hdfs作为目标或一致的EMR .

相关问题