Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione predefinita dell'applicazione per EMR Serverless
È possibile specificare un set comune di configurazioni di runtime e monitoraggio a livello di applicazione per tutti i lavori inviati nella stessa applicazione. Ciò riduce il sovraccarico aggiuntivo associato alla necessità di inviare le stesse configurazioni per ogni lavoro.
È possibile modificare le configurazioni nei seguenti momenti:
Le sezioni seguenti forniscono maggiori dettagli e un esempio per un ulteriore contesto.
Dichiarazione delle configurazioni a livello di applicazione
È possibile specificare le proprietà di registrazione a livello di applicazione e di configurazione di runtime per i lavori inviati tramite l'applicazione.
monitoringConfiguration-
Per specificare le configurazioni di registro per i lavori inviati con l'applicazione, utilizza il campo.
monitoringConfigurationPer ulteriori informazioni sulla registrazione per EMR Serverless, fare riferimento a. Archiviazione dei registri runtimeConfiguration-
Per specificare proprietà di configurazione in fase di esecuzione
spark-defaults, ad esempio, fornire un oggetto di configurazione nel campo.runtimeConfigurationCiò influisce sulle configurazioni predefinite per tutti i lavori inviati con l'applicazione. Per ulteriori informazioni, fare riferimento a Parametro di sovrascrittura della configurazione Hive eParametro di sovrascrittura della configurazione Spark.Le classificazioni di configurazione disponibili variano in base alla specifica release EMR Serverless. Ad esempio, le classificazioni per Log4j personalizzate
spark-executor-log4j2sono disponibili solo con le versionispark-driver-log4j26.8.0 e successive. Per un elenco delle proprietà specifiche dell'applicazione, fare riferimento a and. Proprietà del lavoro Spark Proprietà del lavoro di HiveÈ inoltre possibile configurare le proprietà di Apache Log4j2, Gestione dei segreti AWS per la protezione dei dati, e il runtime di Java 17 a livello di applicazione.
Per trasmettere i segreti di Secrets Manager a livello di applicazione, allega la seguente policy agli utenti e ai ruoli che devono creare o aggiornare applicazioni EMR Serverless con segreti.
Per ulteriori informazioni sulla creazione di policy personalizzate per i segreti, consulta gli esempi di policy di autorizzazione disponibili Gestione dei segreti AWS nella Guida per l'Gestione dei segreti AWS utente.
Nota
runtimeConfigurationCiò che specifichi a livello di applicazione viene applicationConfiguration mappato all'StartJobRunAPI.
Dichiarazione di esempio
L'esempio seguente mostra come dichiarare le configurazioni predefinite con. 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 } }'
Sovrascrivere le configurazioni durante l'esecuzione di un lavoro
È possibile specificare sostituzioni di configurazione per la configurazione dell'applicazione e la configurazione di monitoraggio con l'API. StartJobRun EMR Serverless unisce quindi le configurazioni specificate a livello di applicazione e a livello di processo per determinare le configurazioni per l'esecuzione del lavoro.
Il livello di granularità al momento dell'unione è il seguente:
-
ApplicationConfiguration- Tipo di classificazione, ad esempio.spark-defaults -
MonitoringConfiguration- Tipo di configurazione, ad esempios3MonitoringConfiguration.
Nota
La priorità delle configurazioni fornite in StartJobRunsostituisce le configurazioni fornite a livello di applicazione.
Per ulteriori informazioni sulle classificazioni di priorità, fare riferimento a e. Parametro di sovrascrittura della configurazione Hive Parametro di sovrascrittura della configurazione Spark
Quando si avvia un lavoro, se non si specifica una configurazione particolare, questa verrà ereditata dall'applicazione. Se si dichiarano le configurazioni a livello di processo, è possibile eseguire le seguenti operazioni:
-
Sostituisci una configurazione esistente: fornisci lo stesso parametro di configurazione nella
StartJobRunrichiesta con i tuoi valori di override. -
Aggiungi una configurazione aggiuntiva: aggiungi il nuovo parametro di configurazione nella
StartJobRunrichiesta con i valori che desideri specificare. -
Rimuovere una configurazione esistente: per rimuovere una configurazione di runtime dell'applicazione, fornite la chiave per la configurazione che desiderate rimuovere e passate una dichiarazione vuota
{}per la configurazione. Non è consigliabile rimuovere le classificazioni che contengono parametri necessari per l'esecuzione di un processo. Ad esempio, se si tenta di rimuovere le proprietà richieste per un lavoro Hive, il processo avrà esito negativo.Per rimuovere una configurazione di monitoraggio dell'applicazione, utilizzate il metodo appropriato per il tipo di configurazione pertinente:
-
cloudWatchLoggingConfiguration- Per rimuoverlacloudWatchLogging, passate il flag enabled asfalse. -
managedPersistenceMonitoringConfiguration- Per rimuovere le impostazioni di persistenza gestita e tornare allo stato abilitato predefinito, passa una dichiarazione vuota{}per la configurazione. -
s3MonitoringConfiguration- Per rimuoveres3MonitoringConfiguration, passa una dichiarazione vuota{}per la configurazione.
-
Esempio: override
L'esempio seguente mostra diverse operazioni che è possibile eseguire durante l'invio di un lavoro all'indirizzo. start-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 } } }'
Al momento dell'esecuzione del lavoro, verranno applicate le seguenti classificazioni e configurazioni in base alla classificazione di priorità prioritaria descritta in and. Parametro di sovrascrittura della configurazione Hive Parametro di sovrascrittura della configurazione Spark
-
La classificazione
spark-defaultsverrà aggiornata con le proprietà specificate a livello di mansione. Ai fini di questa classificazioneStartJobRunvengono prese in considerazione solo le proprietà incluse in. -
La classificazione
spark-executor-log4j2verrà aggiunta all'elenco di classificazioni esistente. -
La classificazione
spark-driver-log4j2verrà rimossa. -
Le configurazioni di
managedPersistenceMonitoringConfigurationverranno aggiornate con le configurazioni a livello di processo. -
Le configurazioni di
s3MonitoringConfigurationverranno rimosse. -
Le configurazioni di
cloudWatchLoggingConfigurationverranno aggiunte alle configurazioni di monitoraggio esistenti.