本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 重試 Amazon S3 請求 EMRFS
本主題提供使用 向 Amazon S3 提出請求時,您可以使用的重試策略的相關資訊EMRFS。當您的請求速率加快時,S3 嘗試擴展以支援新的速率。在此過程中,S3 可能對請求限流並傳回 503 Slow Down
錯誤。若要提高您的 S3 請求的成功率,您可以透過在 emrfs-site
組態中設定屬性,調整您的重試策略。
您可以採用下列方式調整您的重試策略。
-
提高預設指數退避重試策略的重試上限。
-
啟用並設定additive-increase/multiplicative-decrease(AIMD) 重試策略。AIMD 支援 Amazon 6.4.0 版及更新EMR版本。
使用預設指數退避策略
根據預設, 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 支援以additive-increase/multiplicative-decrease(AIMD) 模型為基礎的替代重試策略。當您使用大型 Amazon EMR叢集時,AIMD重試策略特別有用。
AIMD 會使用最近成功請求的資料來計算自訂請求率。此策略會減少限流請求的數量和每個請求所需的嘗試總次數。
若要啟用AIMD重試策略,您必須在emrfs-site
組態true
中將 fs.s3.aimd.enabled
屬性設定為 ,如下列範例所示。
[ { "Classification": "emrfs-site", "Properties": { "fs.s3.aimd.enabled": "true" } } ]
如需使用組態物件的詳細資訊,請參閱 設定應用程式。
進階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 | 設定嘗試請求的最大次數。 |