

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden von Richtlinien für die Wiederholung von Aufträgen
<a name="jobruns-using-retry-policies"></a>

In Amazon EMR in EKS-Versionen 6.9.0 und höher können Sie eine Wiederholungsrichtlinie für Ihre Aufgabenausführungen festlegen. Richtlinien für Wiederholungen bewirken, dass ein Auftrags-Treiber-Pod automatisch neu gestartet wird, wenn er fehlschlägt oder gelöscht wird. Dies macht Spark-Streaming-Aufträge mit langer Laufzeit widerstandsfähiger gegenüber Ausfällen.

## Festlegen einer Wiederholungsrichtlinie für einen Auftrag
<a name="setting-retry-policy"></a>

Um eine Wiederholungsrichtlinie zu konfigurieren, stellen Sie mithilfe der [StartJobRun](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html)API ein `RetryPolicyConfiguration` Feld bereit. Eine Beispiel-`retryPolicyConfiguration` wird hier gezeigt:

```
aws emr-containers start-job-run \
--virtual-cluster-id cluster_id \
--name sample-job-name \
--execution-role-arn execution-role-arn \
--release-label emr-6.9.0-latest \
--job-driver '{
  "sparkSubmitJobDriver": {
    "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
    "entryPointArguments": [ "2" ],
    "sparkSubmitParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
  }
}' \
--retry-policy-configuration '{
    "maxAttempts": 5
  }' \
--configuration-overrides '{
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "my_log_group_name",
      "logStreamNamePrefix": "my_log_stream_prefix"
    },
    "s3MonitoringConfiguration": {
       "logUri": "s3://amzn-s3-demo-logging-bucket"
    }
  }
}'
```

**Anmerkung**  
`retryPolicyConfiguration`ist erst ab Version AWS CLI 1.27.68 verfügbar. Informationen zur Aktualisierung AWS CLI auf die neueste Version finden Sie unter [Installation oder Aktualisierung der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)

Konfigurieren Sie das `maxAttempts`-Feld so, wie oft der Aufgaben-Treiber-Pod maximal neu gestartet werden soll, wenn er ausfällt oder gelöscht wird. Das Ausführungsintervall zwischen zwei Wiederholungsversuchen des Auftrag-Treibers ist ein exponentielles Wiederholungsintervall von (10 Sekunden, 20 Sekunden, 40 Sekunden …), das auf 6 Minuten begrenzt ist, wie in der [Kubernetes-Dokumentation](https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy) beschrieben.

**Anmerkung**  
Jede weitere Ausführung des Aufgabentreibers wird als weitere Aufgabenausführung in Rechnung gestellt und unterliegt den Preisen von [Amazon EMR in EKS](https://aws.amazon.com/emr/pricing/#Amazon_EMR_on_Amazon_EKS).

### Wiederholungsrichtlinien-Konfigurationswerte
<a name="retry-config"></a>
+ **Standard-Wiederholungsrichtlinie für einen Auftrag:** `StartJobRun` beinhaltet eine Wiederholungsrichtlinie, die standardmäßig auf einen maximalen Versuch festgelegt ist. Sie können die Wiederholungs-Richtlinie wie gewünscht konfigurieren.
**Anmerkung**  
Wenn `maxAttempts` der `retryPolicyConfiguration` auf 1 gesetzt ist, bedeutet dies, dass bei einem Fehler keine erneuten Versuche unternommen werden, den Treiber-Pod aufzurufen.
+ **Wiederholungsrichtlinie für einen Job deaktivieren: Um eine** Wiederholungsrichtlinie zu deaktivieren, setzen Sie den Wert für maximale Versuche auf 1. retryPolicyConfiguration 

  ```
  "retryPolicyConfiguration": {
      "maxAttempts": 1
  }
  ```
+ **Setzen Sie maxAttempts für einen Auftrag innerhalb des gültigen Bereichs:** Der `StartJobRun`-Aufruf schlägt fehl, wenn der `maxAttempts`-Wert außerhalb des gültigen Bereichs liegt. Der gültige `maxAttempts`-Bereich liegt zwischen 1 und 2.147.483.647 (32-Bit-Ganzzahl), dem Bereich, der für die `backOffLimit`-Konfigurationseinstellung von Kubernetes unterstützt wird. Weitere Informationen finden Sie unter [Pod-Backoff-Fehlerrichtlinie](https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy) in der Kubernetes-Dokumentation. Falls der `maxAttempts`-Wert ungültig ist, wird folgende Fehlermeldung zurückgegeben:

  ```
  {
   "message": "Retry policy configuration's parameter value of maxAttempts is invalid"
  }
  ```

## Abrufen eines Status einer Wiederholungsrichtlinie für einen Auftrag
<a name="retrieve-policy"></a>

Sie können den Status der Wiederholungsversuche für einen Job mit dem und anzeigen. [https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_ListJobRuns.html](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_ListJobRuns.html) APIs Sobald Sie einen Auftrag mit aktivierter Konfiguration der Wiederholungsrichtlinie anfordern, enthalten die `ListJobRun`- und `DescribeJobRun`-Antworten und den Status der Wiederholungsrichtlinie im `RetryPolicyExecution`-Feld. Darüber hinaus enthält die `DescribeJobRun`-Antwort die Angaben `RetryPolicyConfiguration`, die in der `StartJobRun`-Anfrage für den Auftrag eingegeben wurden.

**Beispielantworten**

------
#### [ ListJobRuns response ]

```
{
  "jobRuns": [
    ...
    ...
    "retryPolicyExecution" : {
      "currentAttemptCount": 2
    }
    ...
    ...
  ]
}
```

------
#### [ DescribeJobRun response ]

```
{
  ...
  ...
  "retryPolicyConfiguration": {
    "maxAttempts": 5
   },
   "retryPolicyExecution" : {
    "currentAttemptCount": 2
  },
  ...
  ...
}
```

------

Diese Felder sind nicht sichtbar, wenn die Wiederholungsrichtlinie für den Auftrag deaktiviert ist, wie weiter unten in [Wiederholungsrichtlinien-Konfigurationswerte](#retry-config) beschrieben. 

## Überwachen eines Auftrags mit einer Wiederholungsrichtlinie
<a name="monitoring-retry"></a>

Wenn Sie eine Wiederholungsrichtlinie aktivieren, wird für jeden erstellten Jobtreiber ein CloudWatch Ereignis generiert. Um diese Ereignisse zu abonnieren, richten Sie mit dem folgenden Befehl eine CloudWatch Ereignisregel ein:

```
aws events put-rule \
--name cwe-test \
--event-pattern '{"detail-type": ["EMR Job Run New Driver Attempt"]}'
```

Das Ereignis gibt Informationen zu den Auftragstreibern `newDriverPodName`, `newDriverCreatedAt` dem `previousDriverFailureMessage`-Zeitstempel und den `currentAttemptCount`-Auftragstreibern zurück. Diese Ereignisse werden nicht erzeugt, wenn die Wiederholungsrichtlinie deaktiviert ist.

Weitere Informationen darüber, wie Sie Ihren Job mithilfe von CloudWatch Ereignissen überwachen können, finden Sie unter[Überwachen Sie Jobs mit Amazon CloudWatch Events](monitoring.md#monitoring-cloudwatch-events).

## Suchen nach Protokollen für Treiber und Ausführer
<a name="finding-logs"></a>

Die Namen der Treiber-Pods folgen dem Format `spark-<job id>-driver-<random-suffix>`. Dasselbe `random-suffix` wird zu den Namen der Ausführer-Pods hinzugefügt, die der Treiber erzeugt. Wenn Sie `random-suffix` verwenden, können Sie Protokolle für einen Treiber und die zugehörigen Ausführer finden. Der `random-suffix` ist nur vorhanden, wenn die [Wiederholungsrichtlinie für den Auftrag aktiviert ist](#retry-config); andernfalls fehlt `random-suffix`.

Weitere Informationen zur Konfiguration von Aufträgen mit Überwachungskonfiguration für die Protokollierung finden Sie unter [Eine Spark-Anwendung ausführen](getting-started.md#getting-started-run-spark-app).