

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración predeterminada de aplicación para EMR sin servidor
<a name="default-configs"></a>

Puede especificar un conjunto común de configuraciones de tiempo de ejecución y monitorización a nivel de aplicación para todos los trabajos que envía en la misma aplicación. Esto reduce la sobrecarga adicional asociada a la necesidad de enviar las mismas configuraciones para cada trabajo.

Puede modificar las configuraciones en los siguientes momentos:
+ [Declare las configuraciones a nivel de aplicación en el envío del trabajo.](#default-configs-declare)
+ [Anule las configuraciones predeterminadas durante la ejecución del trabajo.](#default-configs-override)

En las siguientes secciones se proporcionan más detalles y un ejemplo como contexto adicional.

## Declaración de las configuraciones a nivel de aplicación
<a name="default-configs-declare"></a>

Puede especificar las propiedades de configuración del registro y del tiempo de ejecución a nivel de aplicación para los trabajos que envíe en la aplicación.

**`monitoringConfiguration`**  
Para especificar las configuraciones de registro de los trabajos que envíe con la aplicación, utilice el campo [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html). Para obtener más información sobre el registro de EMR sin servidor, consulte [Almacenamiento de registros](logging.md).

**`runtimeConfiguration`**  
Para especificar propiedades de configuración en tiempo de ejecución como `spark-defaults`, proporcione un objeto de configuración en el campo `runtimeConfiguration`. Esto afecta a las configuraciones predeterminadas de todos los trabajos que envíe con la aplicación. Para obtener más información, consulte [Parámetro de anulación de la configuración de Hive](jobs-hive.md#hive-defaults-configurationOverrides) y [Parámetro de anulación de configuración de Spark](jobs-spark.md#spark-defaults-configurationOverrides).  
Las clasificaciones de configuración disponibles varían en función de la versión específica de EMR sin servidor. Por ejemplo, las clasificaciones para el Log4j personalizado `spark-driver-log4j2` y `spark-executor-log4j2` solo están disponibles en las versiones 6.8.0 y posteriores. Para obtener una lista de propiedades específicas de la aplicación, consulte [Propiedades de trabajo de Spark](jobs-spark.md#spark-defaults) y [Propiedades de los trabajos de Hive](jobs-hive.md#hive-defaults).  
También puede configurar las [propiedades de Apache Log4j2](log4j2.md), [AWS Secrets Manager para la protección de datos](secrets-manager.md), así como el [tiempo de ejecución de Java 17](using-java-runtime.md) al nivel de la aplicación.  
Para transmitir los secretos del Secrets Manager a nivel de aplicación, asocie la siguiente política a los usuarios y roles que necesiten crear o actualizar aplicaciones EMR sin servidor con secretos.    
****  

```
{
  "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"
      ]
    }
  ]
}
```
Para obtener más información sobre la creación de políticas personalizadas para los secretos, consulte los [ejemplos de políticas de permisos para AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) en la *Guía del usuario de AWS Secrets Manager *.

**nota**  
La `runtimeConfiguration` que especifique a nivel de aplicación se asigna a la `applicationConfiguration` en la API de [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html).

### Declaración de ejemplo
<a name="default-configs-declare-example"></a>

En el siguiente ejemplo, se muestra cómo declarar configuraciones predeterminadas con `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
        }
    }'
```

## Anulación de configuraciones durante la ejecución de un trabajo
<a name="default-configs-override"></a>

Puede especificar las anulaciones de configuración para la configuración de la aplicación y la configuración de supervisión con la API de [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html). Luego, EMR sin servidor combina las configuraciones que especifique en el nivel de aplicación y en el nivel de trabajo para determinar las configuraciones para la ejecución del trabajo. 

El nivel de detalle cuando se produce la fusión es el siguiente:
+ **[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)**: tipo de clasificación, por ejemplo `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)**: tipo de configuración, por ejemplo `s3MonitoringConfiguration`.

**nota**  
La prioridad de las configuraciones que proporcione a [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html) sustituirá a las configuraciones que usted proporcione a nivel de aplicación.

Para obtener más información sobre las clasificaciones de prioridades, consulte [Parámetro de anulación de la configuración de Hive](jobs-hive.md#hive-defaults-configurationOverrides) y [Parámetro de anulación de configuración de Spark](jobs-spark.md#spark-defaults-configurationOverrides).

Al iniciar un trabajo, si no especifica una configuración concreta, esta se heredará de la aplicación. Si declara las configuraciones a nivel de trabajo, puede realizar las siguientes operaciones:
+ **Anular una configuración existente**: proporcione el mismo parámetro de configuración en la solicitud `StartJobRun` con sus valores de anulación. 
+ **Añadir una configuración adicional**: añada el nuevo parámetro de configuración en la solicitud `StartJobRun` con los valores que desee especificar.
+ **Eliminar una configuración existente**: para eliminar una *configuración en tiempo de ejecución* de una aplicación, proporcione la clave de la configuración que desee eliminar y pase una declaración vacía `{}` para la configuración. No recomendamos eliminar ninguna clasificación que contenga parámetros necesarios para la ejecución de un trabajo. Por ejemplo, si intenta eliminar las [propiedades necesarias para un trabajo de Hive](https://docs.aws.amazon.com/), el trabajo dará error.

  Para eliminar una *configuración de supervisión* de aplicaciones, utilice el método adecuado para el tipo de configuración correspondiente:
  + **`cloudWatchLoggingConfiguration`**: para eliminar `cloudWatchLogging`, pase el indicador de habilitación como `false`. 
  + **`managedPersistenceMonitoringConfiguration`**: para eliminar la configuración de persistencia administrada y volver al estado activado predeterminado, introduzca una declaración vacía `{}` para la configuración. 
  + **`s3MonitoringConfiguration`**: para eliminar `s3MonitoringConfiguration`, pase una declaración vacía `{}` para la configuración.

### Anulación de ejemplo
<a name="default-configs-override-example"></a>

El siguiente ejemplo muestra diferentes operaciones que puede realizar durante el envío de un trabajo en `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
            }
        }
    }'
```

En el momento de la ejecución del trabajo, se aplicarán las siguientes clasificaciones y configuraciones en función de la clasificación de anulación de prioridades descrita en [Parámetro de anulación de la configuración de Hive](jobs-hive.md#hive-defaults-configurationOverrides) y [Parámetro de anulación de configuración de Spark](jobs-spark.md#spark-defaults-configurationOverrides).
+ La clasificación `spark-defaults` se actualizará con las propiedades especificadas a nivel de trabajo. Solo se consideran para esta clasificación las propiedades incluidas en `StartJobRun`.
+ La clasificación `spark-executor-log4j2` se añadirá a la lista de clasificaciones existente.
+ La clasificación `spark-driver-log4j2` se eliminará.
+ Las configuraciones para `managedPersistenceMonitoringConfiguration` se actualizarán con las configuraciones a nivel de trabajo.
+ Las configuraciones para `s3MonitoringConfiguration` se eliminarán.
+ Las configuraciones para `cloudWatchLoggingConfiguration` se añadirán a las configuraciones de monitorización existentes.