

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan kebijakan coba lagi pekerjaan
<a name="jobruns-using-retry-policies"></a>

Di Amazon EMR di EKS versi 6.9.0 dan yang lebih baru, Anda dapat menetapkan kebijakan coba lagi untuk menjalankan pekerjaan Anda. Kebijakan coba lagi menyebabkan pod driver pekerjaan dimulai ulang secara otomatis jika gagal atau dihapus. Ini membuat pekerjaan streaming Spark yang berjalan lama lebih tahan terhadap kegagalan.

## Menetapkan kebijakan coba lagi untuk suatu pekerjaan
<a name="setting-retry-policy"></a>

Untuk mengonfigurasi kebijakan coba lagi, Anda menyediakan `RetryPolicyConfiguration` bidang menggunakan [StartJobRun](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html)API. Contoh `retryPolicyConfiguration` ditampilkan di sini:

```
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"
    }
  }
}'
```

**catatan**  
`retryPolicyConfiguration`hanya tersedia dari versi AWS CLI 1.27.68 dan seterusnya. Untuk memperbarui AWS CLI ke versi terbaru, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)

Konfigurasikan `maxAttempts` bidang dengan jumlah maksimum kali Anda ingin pod driver pekerjaan dimulai ulang jika gagal atau dihapus. [Interval eksekusi antara dua upaya coba lagi pengemudi pekerjaan adalah interval percobaan ulang eksponensial (10 detik, 20 detik, 40 detik...) yang dibatasi pada 6 menit, seperti yang dijelaskan dalam dokumentasi Kubernetes.](https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy)

**catatan**  
Setiap eksekusi driver pekerjaan tambahan akan ditagih sebagai pekerjaan lain, dan akan dikenakan [EMR Amazon pada](https://aws.amazon.com/emr/pricing/#Amazon_EMR_on_Amazon_EKS) harga EKS.

### Coba lagi nilai konfigurasi kebijakan
<a name="retry-config"></a>
+ **Kebijakan coba ulang default untuk pekerjaan:** `StartJobRun` menyertakan kebijakan coba ulang yang disetel ke 1 upaya maksimum secara default. Anda dapat mengonfigurasi kebijakan coba lagi sesuai keinginan.
**catatan**  
Jika `maxAttempts` dari set ke 1, itu berarti tidak ada percobaan ulang yang akan dilakukan untuk memunculkan pod driver pada kegagalan. `retryPolicyConfiguration`
+ **Menonaktifkan kebijakan coba lagi untuk pekerjaan:** Untuk menonaktifkan kebijakan coba lagi, tetapkan nilai upaya maksimal ke 1. retryPolicyConfiguration 

  ```
  "retryPolicyConfiguration": {
      "maxAttempts": 1
  }
  ```
+ **Setel MaxAttempt untuk pekerjaan dalam rentang yang valid:** `StartJobRun` panggilan akan gagal jika `maxAttempts` nilainya berada di luar rentang yang valid. `maxAttempts`Rentang yang valid adalah dari 1 hingga 2.147.483.647 (32-bit integer), rentang yang didukung untuk pengaturan konfigurasi Kubernetes. `backOffLimit` Untuk informasi selengkapnya, lihat [Kebijakan kegagalan backoff Pod di dokumentasi](https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy) Kubernetes. Jika `maxAttempts` nilainya tidak valid, pesan galat berikut dikembalikan:

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

## Mengambil status kebijakan coba lagi untuk suatu pekerjaan
<a name="retrieve-policy"></a>

Anda dapat melihat status upaya coba lagi untuk pekerjaan dengan [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)dan [https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_DescribeJobRun.html](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_DescribeJobRun.html) APIs. Setelah Anda meminta pekerjaan dengan konfigurasi kebijakan coba ulang yang diaktifkan, `DescribeJobRun` respons `ListJobRun` dan akan berisi status kebijakan coba lagi di `RetryPolicyExecution` bidang. Selain itu, `DescribeJobRun` respon akan berisi `RetryPolicyConfiguration` yang dimasukkan dalam `StartJobRun` permintaan untuk pekerjaan itu.

**Sampel tanggapan**

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

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

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

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

------

Kolom ini tidak akan terlihat saat kebijakan coba ulang dinonaktifkan dalam pekerjaan, seperti yang dijelaskan di [Coba lagi nilai konfigurasi kebijakan](#retry-config) bawah ini. 

## Memantau pekerjaan dengan kebijakan coba lagi
<a name="monitoring-retry"></a>

Saat Anda mengaktifkan kebijakan coba lagi, CloudWatch peristiwa akan dibuat untuk setiap driver pekerjaan yang dibuat. Untuk berlangganan acara ini, siapkan aturan CloudWatch acara menggunakan perintah berikut:

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

Acara ini akan mengembalikan informasi tentang`newDriverPodName`, `newDriverCreatedAt` stempel waktu`previousDriverFailureMessage`, dan `currentAttemptCount` driver pekerjaan. Peristiwa ini tidak akan dibuat jika kebijakan coba lagi dinonaktifkan.

Untuk informasi selengkapnya tentang cara memantau pekerjaan Anda dengan CloudWatch acara, lihat[Pantau pekerjaan dengan Amazon CloudWatch Events](monitoring.md#monitoring-cloudwatch-events).

## Menemukan log untuk driver dan pelaksana
<a name="finding-logs"></a>

Nama pod driver mengikuti formatnya`spark-<job id>-driver-<random-suffix>`. `random-suffix`Hal yang sama ditambahkan ke nama pod eksekutor yang muncul driver. Saat Anda menggunakan ini`random-suffix`, Anda dapat menemukan log untuk driver dan pelaksana terkait. Hanya `random-suffix` ada jika [kebijakan coba lagi diaktifkan](#retry-config) untuk pekerjaan; jika tidak, tidak `random-suffix` ada.

Untuk informasi selengkapnya tentang cara mengonfigurasi pekerjaan dengan konfigurasi pemantauan untuk pencatatan, lihat[Jalankan aplikasi Spark](getting-started.md#getting-started-run-spark-app).