Logik für Wiederholversuche - Amazon EMR

Logik für Wiederholversuche

EMRFS versucht mit einer bestimmten Anzahl an Wiederholversuchen, die Listenkonsistenz für Objekte zu überprüfen, die in den Metadaten verfolgt werden. Der Standardwert für ist 5. Wenn die Anzahl der Wiederholversuche überschritten wird, gibt der ursprüngliche Auftrag einen Fehler zurück, es sei denn, fs.s3.consistent.throwExceptionOnInconsistency ist auf false festgelegt, sodass die Objekte lediglich protokolliert werden, die als inkonsistent verfolgt wurden. EMRFS verwendet standardmäßig eine Wiederholungsrichtlinie mit exponentiellem Backoff, Sie können jedoch auch eine feste Richtlinie verwenden. Möglicherweise möchten die Benutzer ihre Versuche für einen bestimmten Zeitraum wiederholen, bevor sie den restlichen Auftrag ausführen, ohne dass eine Ausnahme ausgelöst wird. Sie können dies erreichen, indem sie fs.s3.consistent.throwExceptionOnInconsistency auf false, fs.s3.consistent.retryPolicyType auf fixed und fs.s3.consistent.retryPeriodSeconds auf den gewünschten Wert festlegen. Im folgenden Beispiel wird ein Cluster mit aktivierter Konsistenz erstellt. Dabei werden Inkonsistenzen protokolliert und es wird ein festes Wiederholungsintervall von 10 Sekunden festgelegt:

Beispiel Festlegen des Wiederholungszeitraums auf einen festen Wert
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
Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

Weitere Informationen finden Sie unter Consistent view.

EMRFS-Konfigurationen für IMDS rufen Regionen ab

EMRFS nutzt den IMDS (Instance-Metadaten-Service), um die Instance-Region und Amazon S3, DynamoDB oder AWS KMS-Endpunkte abzurufen. IMDS hat jedoch ein Limit für die Anzahl der Anfragen, die es verarbeiten kann, und Anfragen, die dieses Limit überschreiten, schlagen fehl. Dieses IMDS-Limit kann dazu führen, dass EMRFS-Initialisierungen fehlschlagen und die Abfrage oder der Befehl fehlschlagen. Sie können den folgenden Mechanismus für zufällige exponentielle Backoff-Wiederholungen und die Konfigurationseigenschaften einer Fallback-Region in emrfs-site.xml verwenden, um das Szenario zu beheben, in dem alle Wiederholungsversuche fehlschlagen.

<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>