Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyimpan log
Untuk memantau kemajuan pekerjaan Anda di EMR Serverless dan memecahkan masalah kegagalan pekerjaan, pilih cara EMR Serverless menyimpan dan menyajikan log aplikasi. Saat Anda mengirimkan pekerjaan yang dijalankan, tentukan penyimpanan terkelola, Amazon S3, dan Amazon CloudWatch sebagai opsi pencatatan Anda.
Dengan CloudWatch, tentukan jenis log dan lokasi log yang ingin Anda gunakan, atau terima jenis dan lokasi default. Untuk informasi lebih lanjut tentang CloudWatch log, lihatLogging untuk EMR Serverless dengan Amazon CloudWatch. Dengan penyimpanan terkelola dan logging S3, tabel berikut mencantumkan lokasi log dan ketersediaan UI yang dapat Anda harapkan jika memilih penyimpanan terkelola, bucket Amazon S3, atau keduanya.
| Opsi | Log peristiwa | Log Kontainer | UI Aplikasi |
|---|---|---|---|
|
Penyimpanan terkelola |
Disimpan dalam penyimpanan terkelola |
Disimpan dalam penyimpanan terkelola |
Didukung |
|
Penyimpanan terkelola dan bucket S3 |
Disimpan di kedua tempat |
Disimpan dalam bucket S3 |
Didukung |
|
Buket Amazon S3 |
Disimpan dalam bucket S3 |
Disimpan dalam bucket S3 |
Tidak didukung 1 |
1 Kami menyarankan agar Anda tetap memilih opsi Penyimpanan terkelola. Jika tidak, Anda tidak dapat menggunakan UI aplikasi bawaan.
Logging untuk EMR Serverless dengan penyimpanan terkelola
Secara default, EMR Serverless menyimpan log aplikasi dengan aman di penyimpanan terkelola Amazon EMR selama maksimal 30 hari.
catatan
Jika Anda mematikan opsi default, Amazon EMR tidak dapat memecahkan masalah pekerjaan Anda atas nama Anda. Contoh: Anda tidak dapat mengakses Spark-UI dari Konsol Tanpa Server EMR.
Untuk mematikan opsi ini dari EMR Studio, hapus centang kotak Izinkan AWS untuk menyimpan log selama 30 hari di bagian Pengaturan tambahan pada halaman K irim pekerjaan.
Untuk mematikan opsi ini dari AWS CLI, gunakan managedPersistenceMonitoringConfiguration konfigurasi saat Anda mengirimkan pekerjaan yang dijalankan.
{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }
Jika aplikasi EMR Serverless Anda berada di subnet pribadi dengan titik akhir VPC untuk Amazon S3 dan Anda melampirkan kebijakan titik akhir untuk mengontrol akses, tambahkan izin berikut untuk EMR Serverless untuk menyimpan dan menyajikan log aplikasi. Ganti Resource dengan AppInfo bucket dari tabel wilayah yang tersedia di Kebijakan sampel untuk subnet pribadi yang mengakses Amazon S3.
Selain itu, gunakan kunci aws:SourceVpc kondisi untuk memastikan bahwa permintaan berjalan melalui VPC tempat titik akhir VPC dilampirkan.
Logging untuk EMR Tanpa Server dengan bucket Amazon S3
Sebelum pekerjaan Anda dapat mengirim data log ke Amazon S3, sertakan izin berikut dalam kebijakan izin untuk peran runtime pekerjaan. Ganti dengan nama bucket logging Anda.amzn-s3-demo-logging-bucket
Untuk menyiapkan bucket Amazon S3 untuk menyimpan log dari AWS CLI, gunakan s3MonitoringConfiguration konfigurasi saat Anda memulai menjalankan pekerjaan. Untuk melakukan ini, berikan yang berikut ini --configuration-overrides dalam konfigurasi.
{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/" } } }
Untuk pekerjaan batch yang tidak mengaktifkan percobaan ulang, EMR Serverless mengirimkan log ke jalur berikut:
'/applications/<applicationId>/jobs/<jobId>'
Log driver Spark disimpan di jalur berikut oleh EMR Serverless
'/applications/<applicationId>/jobs/<jobId>/SPARK_DRIVER/'
Log eksekutor Spark disimpan di jalur berikut oleh EMR Serverless
'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'
< EXECUTOR-ID > adalah bilangan bulat.
EMR Serverless merilis 7.1.0 dan upaya coba ulang dukungan yang lebih tinggi untuk pekerjaan streaming dan pekerjaan batch. Jika Anda menjalankan pekerjaan dengan percobaan ulang diaktifkan, EMR Serverless secara otomatis menambahkan nomor percobaan ke awalan jalur log, sehingga Anda dapat membedakan dan melacak log dengan lebih baik.
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'
Logging untuk EMR Serverless dengan Amazon CloudWatch
Saat Anda mengirimkan pekerjaan ke aplikasi EMR Serverless, pilih Amazon CloudWatch sebagai opsi untuk menyimpan log aplikasi Anda. Ini memungkinkan Anda untuk menggunakan fitur analisis CloudWatch CloudWatch log seperti Logs Insights dan Live Tail. Anda juga dapat melakukan streaming log dari CloudWatch sistem lain seperti OpenSearch untuk analisis lebih lanjut.
EMR Serverless menyediakan logging real-time untuk log driver. Anda dapat mengakses log secara real time dengan kemampuan CloudWatch live tail, atau melalui perintah CloudWatch CLI tail.
Secara default, CloudWatch logging dinonaktifkan untuk EMR Serverless. Untuk mengaktifkannya, gunakan konfigurasi diAWS CLI.
catatan
Amazon CloudWatch menerbitkan log secara real time, sehingga menghasilkan lebih banyak sumber daya dari pekerja. Jika Anda memilih kapasitas pekerja yang rendah, dampaknya terhadap waktu kerja Anda mungkin meningkat. Jika Anda mengaktifkan CloudWatch logging, sebaiknya pilih kapasitas pekerja yang lebih besar. Mungkin juga publikasi log dapat melambat jika tingkat transaksi per detik (TPS) terlalu rendah. PutLogEvents Konfigurasi CloudWatch throttling bersifat global untuk semua layanan, termasuk EMR Serverless. Untuk informasi selengkapnya, lihat Bagaimana cara menentukan pembatasan di CloudWatch log saya?
Izin yang diperlukan untuk log dengan CloudWatch
Sebelum pekerjaan Anda dapat mengirim data log ke Amazon CloudWatch, sertakan izin berikut dalam kebijakan izin untuk peran runtime pekerjaan.
AWS CLI
Untuk mengatur Amazon CloudWatch untuk menyimpan log untuk EMR Serverless dari AWS CLI, gunakan cloudWatchLoggingConfiguration konfigurasi saat Anda memulai menjalankan pekerjaan. Untuk melakukan ini, berikan penggantian konfigurasi berikut. Secara opsional, berikan juga nama grup log, nama awalan aliran log, jenis log, dan kunci enkripsi ARN.
Jika Anda tidak menentukan nilai opsional, kemudian CloudWatch menerbitkan log ke grup log default/aws/emr-serverless, dengan aliran log default/applications/.applicationId/jobs/jobId/worker-type
EMR Serverless merilis 7.1.0 dan upaya coba ulang dukungan yang lebih tinggi untuk pekerjaan streaming dan pekerjaan batch. Jika Anda mengaktifkan percobaan ulang untuk pekerjaan, EMR Serverless secara otomatis menambahkan nomor percobaan ke awalan jalur log, sehingga Anda dapat membedakan dan melacak log dengan lebih baik.
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'
Berikut ini menunjukkan konfigurasi minimum yang diperlukan untuk mengaktifkan CloudWatch logging Amazon dengan pengaturan default untuk EMR Serverless:
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }
Contoh berikut menunjukkan semua konfigurasi yang diperlukan dan opsional yang menentukan kapan Anda mengaktifkan CloudWatch logging Amazon untuk EMR Serverless. logTypesNilai yang didukung juga tercantum dalam contoh berikut ini.
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, // Required "logGroupName": "Example_logGroup", // Optional "logStreamNamePrefix": "Example_logStream", // Optional "encryptionKeyArn": "key-arn", // Optional "logTypes": { "SPARK_DRIVER": ["stdout", "stderr"] //List of values } } } }
Secara default, EMR Serverless hanya menerbitkan log stdout driver dan stderr ke. CloudWatch Jika Anda menginginkan log lain, maka tentukan peran wadah dan jenis log yang sesuai dengan logTypes bidang tersebut.
Daftar berikut menunjukkan jenis pekerja yang didukung yang ditentukan untuk logTypes konfigurasi:
- Spark
-
-
SPARK_DRIVER : ["STDERR", "STDOUT"] -
SPARK_EXECUTOR : ["STDERR", "STDOUT"]
-
- Hive
-
-
HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"] -
TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]
-