[在Amazon EMR上的rdd.write.csv时如何处理S3内部服务器错误?

问题描述 投票:0回答:1

我有一个使用rdd.write.csv方法写入S3的pyspark Amazon Elastic Map Reduce(EMR)应用程序。 99.999%的时间有效。不幸的是,在写入过程中出现内部S3错误的概率为0.001%。

错误发生在EMR工作节点上。我们无法使用Python try / catch语句来捕获它。

以下是我们收到的错误消息的示例:

Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Internal Server Error 
(Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Server Error; 
Request ID: F0AFDAB32ADEF5EC; S3 Extended Request ID: aHJpZ0drMEZOREl5b0lUQWI2YkRKWFZWT2hCbnhFUmlDeVlLV2JFOFlVM2ljU1ZINmxFdDVZMTVweEMxNWQK4=), 
S3 Extended Request ID: aHJpZ0drMEZOREl5b0lUQWI2YkRKWFZWT2hCbnhFUmlDeVlLV2JFOFlVM2ljU1ZINmxFdDVZMTVweEMxNWQK4=

除了写HDFS,然后使用子进程将文件从HDFS复制到S3之外,我没有看到其他任何明显的解决方案。那可能仍然会崩溃,但是至少我可以重试它而不会杀死我的pyspark程序。

我们也看到aws s3 cp --recursive s3://bucket/prefix/file local/file中偶尔出现的错误。同样,故障率约为0.001%。

亚马逊说我们应该重试。问题是,当工作节点上发生错误时,无法重试rdd.write.csv。还是在那里?

apache-spark amazon-s3 pyspark amazon-emr
1个回答
0
投票

[C0属性默认为4:

fs.s3.maxRetries

将其增加到更大的数目将增加重试的次数。

© www.soinside.com 2019 - 2024. All rights reserved.