Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasi aplikasi default untuk EMR Serverless
Anda dapat menentukan satu set umum runtime dan konfigurasi pemantauan di tingkat aplikasi untuk semua pekerjaan yang Anda kirimkan di bawah aplikasi yang sama. Ini mengurangi overhead tambahan yang terkait dengan kebutuhan untuk mengirimkan konfigurasi yang sama untuk setiap pekerjaan.
Anda dapat memodifikasi konfigurasi pada titik-titik waktu berikut:
Bagian berikut memberikan rincian lebih lanjut dan contoh untuk konteks lebih lanjut.
Mendeklarasikan konfigurasi di tingkat aplikasi
Anda dapat menentukan pencatatan tingkat aplikasi dan properti konfigurasi runtime untuk pekerjaan yang Anda kirimkan di bawah aplikasi.
monitoringConfiguration-
Untuk menentukan konfigurasi log untuk pekerjaan yang Anda kirimkan dengan aplikasi, gunakan
monitoringConfigurationbidang. Untuk informasi lebih lanjut tentang pencatatan untuk EMR Tanpa Server, lihat. Menyimpan log runtimeConfiguration-
Untuk menentukan properti konfigurasi runtime seperti
spark-defaults, berikan objek konfigurasi diruntimeConfigurationbidang. Ini memengaruhi konfigurasi default untuk semua pekerjaan yang Anda kirimkan dengan aplikasi. Untuk informasi lebih lanjut, lihat Parameter penggantian konfigurasi sarang danParameter penggantian konfigurasi percikan.Klasifikasi konfigurasi yang tersedia bervariasi menurut rilis EMR Tanpa Server tertentu. Misalnya, klasifikasi untuk Log4j kustom
spark-driver-log4j2dan hanyaspark-executor-log4j2tersedia dengan rilis 6.8.0 dan yang lebih tinggi. Untuk daftar properti khusus aplikasi, lihat dan. Properti pekerjaan percikan Properti pekerjaan sarangAnda juga dapat mengonfigurasi properti Apache Log4j2, AWS Secrets Manager untuk perlindungan data, dan runtime Java 17 di tingkat aplikasi.
Untuk meneruskan rahasia Secrets Manager di tingkat aplikasi, lampirkan kebijakan berikut kepada pengguna dan peran yang perlu membuat atau memperbarui aplikasi EMR Tanpa Server dengan rahasia.
Untuk informasi selengkapnya tentang membuat kebijakan khusus untuk rahasia, lihat contoh kebijakan AWS Secrets Manager Izin di Panduan AWS Secrets Manager Pengguna.
catatan
runtimeConfigurationYang Anda tentukan di peta tingkat aplikasi ke applicationConfiguration dalam StartJobRunAPI.
Contoh deklarasi
Contoh berikut menunjukkan bagaimana untuk mendeklarasikan konfigurasi default dengan. create-application
aws emr-serverless create-application \ --release-labelrelease-version\ --type SPARK \ --namemy-application-name\ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.driver.cores": "4", "spark.executor.cores": "2", "spark.driver.memory": "8G", "spark.executor.memory": "8G", "spark.executor.instances": "2", "spark.hadoop.javax.jdo.option.ConnectionDriverName":"org.mariadb.jdbc.Driver", "spark.hadoop.javax.jdo.option.ConnectionURL":"jdbc:mysql://db-host:db-port/db-name", "spark.hadoop.javax.jdo.option.ConnectionUserName":"connection-user-name", "spark.hadoop.javax.jdo.option.ConnectionPassword": "EMR.secret@SecretID" } }, { "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", "logger.IdentifierForClass.name": "classpathForSettingLogger", "logger.IdentifierForClass.level": "info" } } ]' \ --monitoring-configuration '{ "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/app-level" }, "managedPersistenceMonitoringConfiguration": { "enabled": false } }'
Mengganti konfigurasi selama menjalankan pekerjaan
Anda dapat menentukan penggantian konfigurasi untuk konfigurasi aplikasi dan konfigurasi pemantauan dengan API. StartJobRun EMR Tanpa Server kemudian menggabungkan konfigurasi yang Anda tentukan di tingkat aplikasi dan tingkat pekerjaan untuk menentukan konfigurasi untuk pelaksanaan pekerjaan.
Tingkat granularitas saat penggabungan terjadi adalah sebagai berikut:
-
ApplicationConfiguration- Jenis klasifikasi, misalnyaspark-defaults. -
MonitoringConfiguration- Jenis konfigurasi, misalnyas3MonitoringConfiguration.
catatan
Prioritas konfigurasi yang Anda berikan StartJobRunmenggantikan konfigurasi yang Anda berikan di tingkat aplikasi.
Untuk informasi lebih lanjut peringkat prioritas, lihat Parameter penggantian konfigurasi sarang danParameter penggantian konfigurasi percikan.
Ketika Anda memulai pekerjaan, jika Anda tidak menentukan konfigurasi tertentu, itu akan diwarisi dari aplikasi. Jika Anda mendeklarasikan konfigurasi di tingkat pekerjaan, Anda dapat melakukan operasi berikut:
-
Ganti konfigurasi yang ada - Berikan parameter konfigurasi yang sama dalam
StartJobRunpermintaan dengan nilai override Anda. -
Tambahkan konfigurasi tambahan - Tambahkan parameter konfigurasi baru dalam
StartJobRunpermintaan dengan nilai yang ingin Anda tentukan. -
Hapus konfigurasi yang ada - Untuk menghapus konfigurasi runtime aplikasi, berikan kunci untuk konfigurasi yang ingin Anda hapus, dan berikan deklarasi kosong
{}untuk konfigurasi. Kami tidak menyarankan untuk menghapus klasifikasi apa pun yang berisi parameter yang diperlukan untuk menjalankan pekerjaan. Misalnya, jika Anda mencoba menghapus properti yang diperlukan untuk pekerjaan Hive, pekerjaan itu akan gagal.Untuk menghapus konfigurasi pemantauan aplikasi, gunakan metode yang sesuai untuk jenis konfigurasi yang relevan:
-
cloudWatchLoggingConfiguration- Untuk menghapuscloudWatchLogging, berikan bendera yang diaktifkan sebagaifalse. -
managedPersistenceMonitoringConfiguration- Untuk menghapus pengaturan persistensi terkelola dan kembali ke status default yang diaktifkan, berikan deklarasi kosong{}untuk konfigurasi. -
s3MonitoringConfiguration- Untuk menghapuss3MonitoringConfiguration, berikan deklarasi kosong{}untuk konfigurasi.
-
Contoh penggantian
Contoh berikut menunjukkan operasi yang berbeda yang dapat Anda lakukan selama pengajuan pekerjaan distart-job-run.
aws emr-serverless start-job-run \ --application-idyour-application-id\ --execution-role-arnyour-job-role-arn\ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket1/wordcount_output"] } }' \ --configuration-overrides '{ "applicationConfiguration": [ { // Override existing configuration for spark-defaults in the application "classification": "spark-defaults", "properties": { "spark.driver.cores": "2", "spark.executor.cores": "1", "spark.driver.memory": "4G", "spark.executor.memory": "4G" } }, { // Add configuration for spark-executor-log4j2 "classification": "spark-executor-log4j2", "properties": { "rootLogger.level": "error", "logger.IdentifierForClass.name": "classpathForSettingLogger", "logger.IdentifierForClass.level": "info" } }, { // Remove existing configuration for spark-driver-log4j2 from the application "classification": "spark-driver-log4j2", "properties": {} } ], "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { // Override existing configuration for managed persistence "enabled": true }, "s3MonitoringConfiguration": { // Remove configuration of S3 monitoring }, "cloudWatchLoggingConfiguration": { // Add configuration for CloudWatch logging "enabled": true } } }'
Pada saat pelaksanaan pekerjaan, klasifikasi dan konfigurasi berikut akan berlaku berdasarkan peringkat penggantian prioritas yang dijelaskan dalam dan. Parameter penggantian konfigurasi sarang Parameter penggantian konfigurasi percikan
-
Klasifikasi
spark-defaultsakan diperbarui dengan properti yang ditentukan di tingkat pekerjaan. Hanya properti yang termasuk dalamStartJobRundipertimbangkan untuk klasifikasi ini. -
Klasifikasi
spark-executor-log4j2akan ditambahkan dalam daftar klasifikasi yang ada. -
Klasifikasi
spark-driver-log4j2akan dihapus. -
Konfigurasi untuk
managedPersistenceMonitoringConfigurationakan diperbarui dengan konfigurasi di tingkat pekerjaan. -
Konfigurasi untuk
s3MonitoringConfigurationakan dihapus. -
Konfigurasi untuk
cloudWatchLoggingConfigurationakan ditambahkan ke konfigurasi pemantauan yang ada.