本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重試邏輯
EMRFS 經特定次數的嘗試,為在中繼資料中追蹤的物件驗證清單一致性。預設值為 5。除非 fs.s3.consistent.throwExceptionOnInconsistency
是設定為 false
,其中它只會記錄以不一致的形式而追蹤的物件,否則為避免超過重試次數,原始任務會傳回錯誤。根據預設,EMRFS 使用指數退避重試政策,但您也可以將它設為固定政策。使用者也可以為特定時段而進行嘗試,再繼續其他任務,而無需擲回例外狀況。他們可以透過將 fs.s3.consistent.throwExceptionOnInconsistency
設為 false
、將 fs.s3.consistent.retryPolicyType
設為 fixed
和將 fs.s3.consistent.retryPeriodSeconds
設為所需的值而達成此目的。以下範例會建立已啟用一致性的叢集,其會記錄不一致且將固定重試間隔設為 10 秒:
範例 將重試期間設為固定數量
aws emr create-cluster --release-label
emr-7.7.0
\ --instance-typem5.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,請將其移除或取代為插入符號 (^)。
如需詳細資訊,請參閱一致性檢視。
IMDS 的 EMRFS 組態可取得區域呼叫
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>