Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Standardanwendungskonfiguration für Serverless EMR
Sie können auf Anwendungsebene gemeinsame Laufzeit- und Überwachungskonfigurationen für alle Jobs angeben, die Sie im Rahmen derselben Anwendung einreichen. Dadurch wird der zusätzliche Aufwand reduziert, der mit der Notwendigkeit verbunden ist, für jeden Job dieselben Konfigurationen einzureichen.
Sie können die Konfigurationen zu den folgenden Zeitpunkten ändern:
Die folgenden Abschnitte enthalten weitere Informationen und ein Beispiel für weiteren Kontext.
Deklarieren von Konfigurationen auf Anwendungsebene
Sie können Protokollierungs- und Laufzeitkonfigurationseigenschaften auf Anwendungsebene für die Jobs angeben, die Sie im Rahmen der Anwendung einreichen.
monitoringConfiguration
-
Verwenden Sie das Feld, um die Protokollkonfigurationen für Jobs anzugeben, die Sie mit der Anwendung einreichen.
monitoringConfiguration
Weitere Informationen zur Protokollierung für EMR Serverless finden Sie unterSpeichern von Protokollen. runtimeConfiguration
-
Um Eigenschaften der Laufzeitkonfiguration anzugeben, geben Sie z.
spark-defaults
B. ein Konfigurationsobjekt in dasruntimeConfiguration
Feld ein. Dies wirkt sich auf die Standardkonfigurationen für alle Jobs aus, die Sie mit der Anwendung einreichen. Weitere Informationen erhalten Sie unter Parameter zum Überschreiben der Hive-Konfiguration und Parameter zur Überschreibung der Spark-Konfiguration.Die verfügbaren Konfigurationsklassifizierungen variieren je nach EMR Serverless-Version. Zum Beispiel Klassifizierungen für benutzerdefiniertes Log4j
spark-driver-log4j2
undspark-executor-log4j2
sind nur mit Versionen 6.8.0 und höher verfügbar. Eine Liste der anwendungsspezifischen Eigenschaften finden Sie unter und. Eigenschaften von Spark-Jobs Eigenschaften von Hive-JobsSie können auch Apache Log4j2-Eigenschaften AWS Secrets Manager für den Datenschutz und die Java 17-Laufzeit auf Anwendungsebene konfigurieren.
Um Secrets Manager Manager-Geheimnisse auf Anwendungsebene weiterzugeben, fügen Sie Benutzern und Rollen, die EMR serverlose Anwendungen mit Geheimnissen erstellen oder aktualisieren müssen, die folgende Richtlinie hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
SecretsManagerPolicy
", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "kms:Decrypt" ], "Resource": "arn:aws:secretsmanager:your-secret-arn
" } ] }Weitere Informationen zum Erstellen benutzerdefinierter Richtlinien für geheime Daten finden Sie AWS Secrets Manager im AWS Secrets Manager Benutzerhandbuch unter Beispiele für Berechtigungsrichtlinien.
Anmerkung
DieruntimeConfiguration
, die Sie auf Anwendungsebene angeben, entspricht applicationConfiguration
in der StartJobRun
API.
Beispiel einer Deklaration
Das folgende Beispiel zeigt, wie Standardkonfigurationen mit deklariert create-application
werden.
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 } }'
Überschreiben von Konfigurationen während einer Jobausführung
Sie können Konfigurationsüberschreibungen für die Anwendungskonfiguration und die Überwachungskonfiguration mit dem StartJobRun
APIangeben. EMR Serverless führt dann die Konfigurationen zusammen, die Sie auf Anwendungs- und Auftragsebene angeben, um die Konfigurationen für die Jobausführung zu bestimmen.
Die Granularitätsstufe bei der Zusammenführung ist wie folgt:
-
ApplicationConfiguration
- Zum Beispielspark-defaults
der Klassifizierungstyp. -
MonitoringConfiguration
- Konfigurationstyp, zum Beispiels3MonitoringConfiguration
.
Anmerkung
Die Priorität der Konfigurationen, die Sie auf Anwendungsebene bereitstellen, StartJobRun
hat Vorrang vor den Konfigurationen, die Sie auf Anwendungsebene bereitstellen.
Weitere Informationen zur Rangfolge der Prioritäten finden Sie unter Parameter zum Überschreiben der Hive-Konfiguration und. Parameter zur Überschreibung der Spark-Konfiguration
Wenn Sie einen Job starten und keine bestimmte Konfiguration angeben, wird diese von der Anwendung übernommen. Wenn Sie die Konfigurationen auf Jobebene deklarieren, können Sie die folgenden Operationen ausführen:
-
Eine bestehende Konfiguration überschreiben — Geben Sie denselben Konfigurationsparameter in der
StartJobRun
Anfrage mit Ihren Override-Werten an. -
Zusätzliche Konfiguration hinzufügen — Fügen Sie der
StartJobRun
Anfrage den neuen Konfigurationsparameter mit den Werten hinzu, die Sie angeben möchten. -
Eine bestehende Konfiguration entfernen — Um eine Laufzeitkonfiguration einer Anwendung zu entfernen, geben Sie den Schlüssel für die Konfiguration ein, die Sie entfernen möchten, und übergeben Sie eine leere Deklaration
{}
für die Konfiguration. Es wird nicht empfohlen, Klassifizierungen zu entfernen, die Parameter enthalten, die für die Ausführung eines Jobs erforderlich sind. Wenn Sie beispielsweise versuchen, die erforderlichen Eigenschaften für einen Hive-Job zu entfernen, schlägt der Job fehl.Um eine Konfiguration zur Anwendungsüberwachung zu entfernen, verwenden Sie die entsprechende Methode für den entsprechenden Konfigurationstyp:
-
cloudWatchLoggingConfiguration
— Um zu entfernencloudWatchLogging
, übergeben Sie das Kennzeichen enabled alsfalse
. -
managedPersistenceMonitoringConfiguration
— Um die verwalteten Persistenzeinstellungen zu entfernen und zum Standardstatus aktiviert zurückzukehren, übergeben Sie eine leere Deklaration{}
für die Konfiguration. -
s3MonitoringConfiguration
— Um zu entfernens3MonitoringConfiguration
, übergeben Sie eine leere Deklaration{}
für die Konfiguration.
-
Beispiel für Override
Das folgende Beispiel zeigt verschiedene Operationen, die Sie bei der Einreichung eines Jobs unter ausführen könnenstart-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 } } }'
Zum Zeitpunkt der Auftragsausführung gelten die folgenden Klassifizierungen und Konfigurationen, die auf der unter Parameter zum Überschreiben der Hive-Konfiguration und Parameter zur Überschreibung der Spark-Konfiguration beschriebenen Rangfolge der Prioritätsüberschreibung basieren.
-
Die Klassifizierung
spark-defaults
wird mit den auf Auftragsebene angegebenen Eigenschaften aktualisiert. Nur die in enthaltenen EigenschaftenStartJobRun
würden für diese Klassifizierung berücksichtigt. -
Die Klassifizierung
spark-executor-log4j2
wird in die bestehende Liste der Klassifizierungen aufgenommen. -
Die Klassifizierung
spark-driver-log4j2
wird entfernt. -
Die Konfigurationen für
managedPersistenceMonitoringConfiguration
werden mit Konfigurationen auf Auftragsebene aktualisiert. -
Die Konfigurationen für
s3MonitoringConfiguration
werden entfernt. -
Die Konfigurationen für
cloudWatchLoggingConfiguration
werden zu bestehenden Überwachungskonfigurationen hinzugefügt.