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
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
Untuk mengonfigurasi kebijakan coba lagi, Anda menyediakan RetryPolicyConfiguration
bidang menggunakan StartJobRunAPI. 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
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.
catatan
Setiap eksekusi driver pekerjaan tambahan akan ditagih sebagai pekerjaan lain, dan akan dikenakan EMR Amazon pada
Coba lagi nilai konfigurasi kebijakan
-
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 jikamaxAttempts
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 dokumentasiKubernetes. 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
Anda dapat melihat status upaya coba lagi untuk pekerjaan dengan ListJobRuns
dan DescribeJobRun
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
Kolom ini tidak akan terlihat saat kebijakan coba ulang dinonaktifkan dalam pekerjaan, seperti yang dijelaskan di Coba lagi nilai konfigurasi kebijakan bawah ini.
Memantau pekerjaan dengan kebijakan coba lagi
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 tentangnewDriverPodName
, newDriverCreatedAt
stempel waktupreviousDriverFailureMessage
, 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, lihatPantau pekerjaan dengan Amazon CloudWatch Events.
Menemukan log untuk driver dan pelaksana
Nama pod driver mengikuti formatnyaspark-<job
id>-driver-<random-suffix>
. random-suffix
Hal yang sama ditambahkan ke nama pod eksekutor yang muncul driver. Saat Anda menggunakan inirandom-suffix
, Anda dapat menemukan log untuk driver dan pelaksana terkait. Hanya random-suffix
ada jika kebijakan coba lagi diaktifkan untuk pekerjaan; jika tidak, tidak random-suffix
ada.
Untuk informasi selengkapnya tentang cara mengonfigurasi pekerjaan dengan konfigurasi pemantauan untuk pencatatan, lihatJalankan aplikasi Spark.