Konfigurasi aplikasi default untuk Tanpa EMR Server - Amazon EMR

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

Konfigurasi aplikasi default untuk Tanpa EMR Server

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 selengkapnya tentang pencatatan untuk EMR Tanpa Server, lihat. Menyimpan log

runtimeConfiguration

Untuk menentukan properti konfigurasi runtime sepertispark-defaults, berikan objek konfigurasi di runtimeConfiguration bidang. Ini memengaruhi konfigurasi default untuk semua pekerjaan yang Anda kirimkan dengan aplikasi. Untuk informasi selengkapnya, silakan lihat Parameter penggantian konfigurasi sarang dan Parameter penggantian konfigurasi percikan.

Klasifikasi konfigurasi yang tersedia bervariasi menurut rilis Tanpa EMR Server tertentu. Misalnya, klasifikasi untuk Log4j kustom spark-driver-log4j2 dan hanya spark-executor-log4j2 tersedia dengan rilis 6.8.0 dan yang lebih tinggi. Untuk daftar properti khusus aplikasi, lihat Properti pekerjaan percikan dan. Properti pekerjaan sarang

Anda 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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPolicy", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "kms:Decrypt" ], "Resource": "arn:aws:secretsmanager:your-secret-arn" } ] }

Untuk informasi selengkapnya tentang membuat kebijakan khusus untuk rahasia, lihat contoh kebijakan izin AWS Secrets Manager 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-label release-version \ --type SPARK \ --name my-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. StartJobRunAPI EMRServerless 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:

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 StartJobRun permintaan dengan nilai override Anda.

  • Tambahkan konfigurasi tambahan - Tambahkan parameter konfigurasi baru dalam StartJobRun permintaan 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 mengesampingkan

Contoh berikut menunjukkan operasi yang berbeda yang dapat Anda lakukan selama pengajuan pekerjaan distart-job-run.

aws emr-serverless start-job-run \ --application-id your-application-id \ --execution-role-arn your-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-defaults akan diperbarui dengan properti yang ditentukan di tingkat pekerjaan. Hanya properti yang termasuk dalam StartJobRun yang akan dipertimbangkan untuk klasifikasi ini.

  • Klasifikasi spark-executor-log4j2 akan ditambahkan dalam daftar klasifikasi yang ada.

  • Klasifikasi spark-driver-log4j2 akan dihapus.

  • Konfigurasi untuk managedPersistenceMonitoringConfiguration akan diperbarui dengan konfigurasi di tingkat pekerjaan.

  • Konfigurasi untuk s3MonitoringConfiguration akan dihapus.

  • Konfigurasi untuk cloudWatchLoggingConfiguration akan ditambahkan ke konfigurasi pemantauan yang ada.