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
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:
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
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
monitoringConfiguration
. Para obtener más información sobre el registro de EMR sin servidor, consulte Almacenamiento de registros. runtimeConfiguration
-
Para especificar propiedades de configuración en tiempo de ejecución como
spark-defaults
, proporcione un objeto de configuración en el camporuntimeConfiguration
. 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 y Parámetro de anulación de configuración de Spark.Las clasificaciones de configuración disponibles varían en función de la versión de EMR sin servidor. Por ejemplo, las clasificaciones para el Log4j personalizado de
spark-driver-log4j2
yspark-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 y Propiedades de los trabajos de Hive.También puede configurar las propiedades de Apache Log4j2, AWS Secrets Manager para la protección de datos, así como el tiempo de ejecución de Java 17 a nivel de 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", "kms:Decrypt" ], "Resource": "arn:aws:secretsmanager:your-secret-arn
" } ] }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 AWS Secrets Manager en la AWS Secrets Manager Guía del usuario.
nota
La runtimeConfiguration
que especifique a nivel de aplicación se asigna a la applicationConfiguration
en la API de StartJobRun
.
Declaración de ejemplo
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 \ --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 } }'
Anulación de configuraciones durante la ejecución de un trabajo
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 StartJobRun
. 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:
-
ApplicationConfiguration
: tipo de clasificación, por ejemplospark-defaults
. -
MonitoringConfiguration
: tipo de configuración, por ejemplos3MonitoringConfiguration
.
nota
La prioridad de las configuraciones que proporcione a StartJobRun
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 y Parámetro de anulación de configuración de Spark.
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, 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 eliminarcloudWatchLogging
, pase el indicador de habilitación comofalse
. -
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 eliminars3MonitoringConfiguration
, pase una declaración vacía{}
para la configuración.
-
Anulación de ejemplo
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-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 } } }'
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 y Parámetro de anulación de configuración de Spark.
-
La clasificación
spark-defaults
se actualizará con las propiedades especificadas a nivel de trabajo. Solo se considerarían para esta clasificación las propiedades incluidas enStartJobRun
. -
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.