Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan kebijakan coba ulang pekerjaan
Di Amazon EMR pada EKS versi 6.9.0 dan yang lebih baru, Anda dapat menetapkan kebijakan coba ulang untuk pekerjaan Anda berjalan. Coba lagi kebijakan 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 ulang untuk suatu pekerjaan
Untuk mengonfigurasi kebijakan coba ulang, Anda menyediakanRetryPolicyConfiguration
bidang menggunakanStartJobRunAPI. ContohretryPolicyConfiguration
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://DOC-EXAMPLE-BUCKET-LOGGING" } } }'
catatan
retryPolicyConfiguration
hanya tersedia dariAWS CLI1.27.68 versi dan seterusnya. Untuk memperbaruiAWS CLIke versi terbaru, lihatMenginstal atau memperbarui versi terbaru dariAWS CLI
KonfigurasikanmaxAttempts
field dengan jumlah maksimum yang kamu inginkan agar pod driver job di-restart jika gagal atau dihapus. Interval eksekusi antara dua upaya coba ulang pengemudi pekerjaan adalah interval percobaan ulang eksponensial (10 detik, 20 detik, 40 detik...) yang dibatasi pada 6 menit, seperti yang dijelaskan dalamDokumentasi Kubernetes
catatan
Setiap eksekusi pengemudi pekerjaan tambahan akan ditagih sebagai pekerjaan lain, dan akan dikenakanAmazon EMR pada harga EKS
Coba lagi nilai konfigurasi kebijakan
-
Kebijakan coba ulang default untuk suatu pekerjaan:
StartJobRun
menyertakan kebijakan coba lagi yang ditetapkan ke 1 upaya maksimum secara default. Anda dapat mengonfigurasi kebijakan coba lagi sesuai keinginan.catatan
Jika
maxAttempts
dariretryPolicyConfiguration
diatur ke 1, itu berarti tidak ada percobaan ulang yang akan dilakukan untuk memunculkan pod driver pada kegagalan. -
Menonaktifkan kebijakan coba lagi untuk suatu pekerjaan:Untuk menonaktifkan kebijakan coba lagi, tetapkan nilai upaya maks diretryPolicyConfigurationuntuk 1.
"retryPolicyConfiguration": { "maxAttempts": 1 }
-
Tetapkan MaxUpaya untuk pekerjaan dalam rentang yang valid:
StartJobRun
panggilan akan gagal jikamaxAttempts
nilai berada di luar rentang yang valid. Yang validmaxAttempts
Rentang adalah dari 1 hingga 2.147.483.647 (32-bit integer), rentang yang didukung untuk Kubernetes 'backOffLimit
pengaturan konfigurasi. Untuk informasi lebih lanjut, lihatKebijakan kegagalan Pod backoffdalam dokumentasi Kubernetes. Jika maxAttempts
nilai tidak valid, pesan galat berikut dikembalikan:{ "message": "Retry policy configuration's parameter value of maxAttempts is invalid" }
Mengambil status kebijakan percobaan ulang untuk suatu pekerjaan
Anda dapat melihat status upaya percobaan ulang untuk pekerjaan denganListJobRuns
danDescribeJobRun
API. Setelah Anda meminta pekerjaan dengan konfigurasi kebijakan coba ulang yang diaktifkan,ListJobRun
danDescribeJobRun
tanggapan akan berisi status kebijakan coba lagi diRetryPolicyExecution
bidang. Selain itu,DescribeJobRun
respon akan berisiRetryPolicyConfiguration
yang masukan diStartJobRun
permintaan untuk pekerjaan itu.
Respons sampel
Bidang ini tidak akan terlihat ketika kebijakan coba lagi dinonaktifkan dalam pekerjaan, seperti yang dijelaskan di bawah ini diCoba lagi nilai konfigurasi kebijakan.
Memantau pekerjaan dengan kebijakan coba lagi
Saat Anda mengaktifkan kebijakan coba ulang, aCloudWatchacara yang dihasilkan untuk setiap driver pekerjaan yang dibuat. Untuk berlangganan acara ini, siapkanCloudWatchaturan 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 waktu,previousDriverFailureMessage
, dancurrentAttemptCount
dari pengemudi pekerjaan. Peristiwa ini tidak akan dibuat jika kebijakan coba lagi dinonaktifkan.
Untuk informasi lebih lanjut tentang cara memantau pekerjaan Anda denganCloudWatchperistiwa, lihatPantau pekerjaan dengan Amazon CloudWatch Events.
Menemukan log untuk driver dan pelaksana
Nama pod driver mengikuti formatspark-<job
id>-driver-<random-suffix>
. Samarandom-suffix
ditambahkan ke nama pod pelaksana yang dihasilkan pengemudi. Bila Anda menggunakan inirandom-suffix
, Anda dapat menemukan log untuk driver dan pelaksana terkait. Yangrandom-suffix
hanya hadir jikakebijakan coba lagi diaktifkanuntuk pekerjaan; jika tidak,random-suffix
tidak ada.
Untuk informasi selengkapnya tentang cara mengonfigurasi pekerjaan dengan konfigurasi pemantauan untuk pencatatan, lihatJalankan aplikasi Spark park park park park park park.