重試邏輯 - Amazon EMR

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

重試邏輯

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.2.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,請將其移除或取代為插入符號 (^)。

如需詳細資訊,請參閱 一致性檢視

EMRFSIMDS取得區域呼叫的組態

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>