本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用重试 Amazon S3 请求 EMRFS
本主题提供有关向Amazon S3发出请求时可以使用的重试策略的信息。EMRFS当您的请求速率提高时,S3 会尝试扩展以支持新的速率。在此过程中,S3 可以限制请求并返回 503 Slow Down
错误。为了提高 S3 请求的成功率,您可以通过在 emrfs-site
配置中配置属性以调整重试策略。
您可以通过以下方法调整重试策略。
-
提高默认指数退避重试策略的最大重试限制。
-
启用并配置加法-增加/乘法-减少 () 重试策略。AIMDAIMD支持 Amazon EMR 版本 6.4.0 及更高版本。
使用默认的指数退避策略
默认情况下,EMRFS使用指数退避策略重试 Amazon S3 请求。默认EMRFS重试限制为 15。为避免 S3 503 Slow Down
错误,您可以在创建新集群时、在正在运行的群集上或应用程序运行时提高重试限制。
要提高重试限制,您必须在您的 emrfs-site
配置中更改 fs.s3.maxRetries
的值。以下示例配置将 fs.s3.maxRetries
设置为自定义值 30。
[ { "Classification": "emrfs-site", "Properties": { "fs.s3.maxRetries": "
30
" } } ]
有关使用配置对象的更多信息,请参阅 配置应用程序。
使用AIMD重试策略
在 Amazon 6.4.0 及更高EMR版本中,EMRFS支持基于加法-增加/乘法-减少 () 模型的替代重试策略。AIMD当您使用大型 Amazon EMR 集群时,AIMD重试策略特别有用。
AIMD使用有关最近成功请求的数据计算自定义请求率。此策略减少了受限请求的数量和每个请求所需的总尝试次数。
要启用AIMD重试策略,您必须在emrfs-site
配置true
中将该fs.s3.aimd.enabled
属性设置为,如下例所示。
[ { "Classification": "emrfs-site", "Properties": { "fs.s3.aimd.enabled": "true" } } ]
有关使用配置对象的更多信息,请参阅 配置应用程序。
高级AIMD重试设置
在使用重试策略时,您可以配置下表中列出的属性以优化AIMD重试行为。对于大多数使用案例,我们建议您使用默认值。
高级AIMD重试策略属性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
属性 | 默认值 | 描述 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.increaseIncrement |
0.1 | 控制连续请求成功时请求速率的增长速度。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.reductionFactor |
2 | 控制 Amazon S3 返回 503 响应时请求速率降低的速度。默认因子 2 将请求率降低一半。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.minRate |
0.1 | 设置请求经历 S3 持续限制时的请求速率的下限。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.initialRate |
5500 | 设置初始请求速率,然后该速率将根据您为 fs.s3.aimd.increaseIncrement 和 fs.s3.aimd.reductionFactor 指定的值变化。初始速率也用于GET请求,并按比例缩放 (3500/5500) 来处理请求。PUT |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.adjustWindow |
2 | 控制调整请求速率的频率,以响应数量衡量。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.s3.aimd.maxAttempts |
100 | 设置尝试请求的最大尝试次数。 |