

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 重試邏輯
<a name="emrfs-retry-logic"></a>

EMRFS 經特定次數的嘗試，為在中繼資料中追蹤的物件驗證清單一致性。預設值為 5。除非 `fs.s3.consistent.throwExceptionOnInconsistency` 是設定為 `false`，其中它只會記錄以不一致的形式而追蹤的物件，否則為避免超過重試次數，原始任務會傳回錯誤。根據預設，EMRFS 使用指數退避重試政策，但您也可以將它設為固定政策。使用者也可以為特定時段而進行嘗試，再繼續其他任務，而無需擲回例外狀況。他們可以透過將 `fs.s3.consistent.throwExceptionOnInconsistency` 設為 `false`、將 `fs.s3.consistent.retryPolicyType` 設為 `fixed` 和將 `fs.s3.consistent.retryPeriodSeconds` 設為所需的值而達成此目的。以下範例會建立已啟用一致性的叢集，其會記錄不一致且將固定重試間隔設為 10 秒：

**Example 將重試期間設為固定數量**  

```
aws emr create-cluster --release-label {{emr-7.13.0}} \
--instance-type {{m5.xlarge}} --instance-count 1 \
--emrfs Consistent={{true}},Args=[fs.s3.consistent.throwExceptionOnInconsistency={{false}}, fs.s3.consistent.retryPolicyType={{fixed}},fs.s3.consistent.retryPeriodSeconds={{10}}] --ec2-attributes KeyName={{myKey}}
```

**注意**  
包含 Linux 行接續字元 (\\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

如需詳細資訊，請參閱[一致性檢視](emr-plan-consistent-view.md)。

## IMDS 的 EMRFS 組態可取得區域呼叫
<a name="randomized-exponential-backoff-retry"></a>

EMRFS 依賴 IMDS （執行個體中繼資料服務） 來取得執行個體區域和 Amazon S3、DynamoDB 或 AWS KMS 端點。但是，IMDS 對它可以處理的請求數量有限制，超過該限制的請求將會失敗。此 IMDS 限制可能會導致 EMRFS 無法初始化，並導致查詢或命令失敗。您可以使用下列隨機化指數退避重試機制和 emrfs-site.xml 中的退避區域組態屬性，來解決所有重試失敗的案例。

```
<property>
    <name>fs.s3.region.retryCount</name>
    <value>3</value>
    <description>
    Maximum retries that would be attempted to get AWS region.
    </description>
</property>
<property>
    <name>fs.s3.region.retryPeriodSeconds</name>
    <value>3</value>
    <description>
    Base sleep time in second for each get-region retry.
    </description>
</property>
<property>
    <name>fs.s3.region.fallback</name>
    <value>us-east-1</value>
    <description>
    Fallback to this region after maximum retries for getting AWS region have been reached.
    </description>
</property>
```