再試行ロジック - Amazon EMR

再試行ロジック

EMRFS は、特定の数の再試行について、メタデータで追跡されるオブジェクトのリストの整合性を検証しようとします。デフォルトは 5 です。再試行の数を超過する場合、fs.s3.consistent.throwExceptionOnInconsistencyfalse に設定されていない限り(この場合、整合性がないとして追跡されるオブジェクトのみが記録されます)、失敗を返します。EMRFS は、デフォルトでエクスポネンシャルパックオフ再試行ポリシーを使用しますが、固定ポリシーに設定することもできます。ユーザーは、例外をスローすることなく、残りのジョブに進む前に特定の時間、再試行したい場合があります。その場合は、fs.s3.consistent.throwExceptionOnInconsistencyfalse に、fs.s3.consistent.retryPolicyTypefixed に、fs.s3.consistent.retryPeriodSeconds を目的の値に設定することで、これを達成できます。次の例では、整合性を有効にしてクラスターを作成します。これにより、不整合が記録され、10 秒の固定再試行間隔が設定されます。

例 再試行期間の一定量への設定
aws emr create-cluster --release-label emr-5.36.1 \ --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 の場合、削除するか、キャレット (^) に置き換えてください。

詳細については、「整合性のあるビュー」を参照してください。

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>