

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 Tanpa Server
<a name="default-configs"></a>

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:
+ [Deklarasikan konfigurasi tingkat aplikasi saat pengajuan pekerjaan.](#default-configs-declare)
+ [Ganti konfigurasi default selama menjalankan pekerjaan.](#default-configs-override)

Bagian berikut memberikan rincian lebih lanjut dan contoh untuk konteks lebih lanjut.

## Mendeklarasikan konfigurasi di tingkat aplikasi
<a name="default-configs-declare"></a>

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 [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html)bidang. Untuk informasi lebih lanjut tentang pencatatan untuk EMR Tanpa Server, lihat. [Menyimpan log](logging.md)

**`runtimeConfiguration`**  
Untuk menentukan properti konfigurasi runtime seperti`spark-defaults`, berikan objek konfigurasi di `runtimeConfiguration` bidang. Ini memengaruhi konfigurasi default untuk semua pekerjaan yang Anda kirimkan dengan aplikasi. Untuk informasi lebih lanjut, lihat [Parameter penggantian konfigurasi sarang](jobs-hive.md#hive-defaults-configurationOverrides) dan[Parameter penggantian konfigurasi percikan](jobs-spark.md#spark-defaults-configurationOverrides).  
Klasifikasi konfigurasi yang tersedia bervariasi menurut rilis EMR Tanpa 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 dan. [Properti pekerjaan percikan](jobs-spark.md#spark-defaults) [Properti pekerjaan sarang](jobs-hive.md#hive-defaults)  
Anda juga dapat mengonfigurasi [properti Apache Log4j2](log4j2.md), [AWS Secrets Manager untuk perlindungan data](secrets-manager.md), dan [runtime Java 17](using-java-runtime.md) 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"
      ],
      "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret-name-123abc"
      ]
    },
    {
      "Sid": "KMSDecryptPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
      ]
    }
  ]
}
```
Untuk informasi selengkapnya tentang membuat kebijakan khusus untuk rahasia, lihat [contoh kebijakan AWS Secrets Manager Izin](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) di *Panduan AWS Secrets Manager Pengguna*.

**catatan**  
`runtimeConfiguration`Yang Anda tentukan di peta tingkat aplikasi ke `applicationConfiguration` dalam [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html)API.

### Contoh deklarasi
<a name="default-configs-declare-example"></a>

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
<a name="default-configs-override"></a>

Anda dapat menentukan penggantian konfigurasi untuk konfigurasi aplikasi dan konfigurasi pemantauan dengan API. [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html) 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:
+ **[https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-applicationConfiguration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-applicationConfiguration)**- Jenis klasifikasi, misalnya`spark-defaults`.
+ **[https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-monitoringConfiguration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-monitoringConfiguration)**- Jenis konfigurasi, misalnya`s3MonitoringConfiguration`.

**catatan**  
Prioritas konfigurasi yang Anda berikan [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html)menggantikan konfigurasi yang Anda berikan di tingkat aplikasi.

Untuk informasi lebih lanjut peringkat prioritas, lihat [Parameter penggantian konfigurasi sarang](jobs-hive.md#hive-defaults-configurationOverrides) dan[Parameter penggantian konfigurasi percikan](jobs-spark.md#spark-defaults-configurationOverrides).

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](https://docs.aws.amazon.com/) itu akan gagal.

  Untuk menghapus *konfigurasi pemantauan* aplikasi, gunakan metode yang sesuai untuk jenis konfigurasi yang relevan:
  + **`cloudWatchLoggingConfiguration`**- Untuk menghapus`cloudWatchLogging`, berikan bendera yang diaktifkan sebagai`false`. 
  + **`managedPersistenceMonitoringConfiguration`**- Untuk menghapus pengaturan persistensi terkelola dan kembali ke status default yang diaktifkan, berikan deklarasi kosong `{}` untuk konfigurasi. 
  + **`s3MonitoringConfiguration`**- Untuk menghapus`s3MonitoringConfiguration`, berikan deklarasi kosong `{}` untuk konfigurasi.

### Contoh penggantian
<a name="default-configs-override-example"></a>

Contoh berikut menunjukkan operasi yang berbeda yang dapat Anda lakukan selama pengajuan pekerjaan di`start-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](jobs-hive.md#hive-defaults-configurationOverrides) [Parameter penggantian konfigurasi percikan](jobs-spark.md#spark-defaults-configurationOverrides)
+ Klasifikasi `spark-defaults` akan diperbarui dengan properti yang ditentukan di tingkat pekerjaan. Hanya properti yang termasuk dalam `StartJobRun` 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.