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à.
Utilizzo della classificazione predefinita dei contenitori Amazon EMR
Panoramica di
Le seguenti impostazioni sono disponibili nella classificazione: emr-containers-defaults
-
job-start-timeout -
Per impostazione predefinita, un processo scadrà se non può essere avviato e rimane nello
SUBMITTEDstato per 15 minuti. Questa configurazione modifica il numero di secondi di attesa prima del timeout del lavoro. -
executor.logging -
Abilita o disabilita la registrazione sugli executor pod. Quando è impostato su,
DISABLEDil contenitore di registrazione viene rimosso dai pod dell'esecutore, il che disabiliterà qualsiasi registrazione per questi pod specificati in, ad esempio o.monitoringConfigurations3MonitoringConfigurationcloudWatchMonitoringConfigurationQuando questa impostazione non è impostata o è impostata su un altro valore, l'accesso agli executor pod è abilitato. -
logging.image -
Imposta un'immagine personalizzata da utilizzare per il contenitore di registrazione sui driver e sugli executor pod.
-
logging.request.cores -
Imposta un valore personalizzato per il numero di CPU, in unità CPU, per il contenitore di registrazione sui pod driver ed executor. Per impostazione predefinita, questo non è impostato.
-
logging.request.memory -
Imposta un valore personalizzato per la quantità di memoria, in byte, per il contenitore di registrazione sui pod driver ed executor. Per impostazione predefinita, è impostata su 512Mi. Un mebibyte è un'unità di misura simile a un megabyte.
-
logging.eventLog.dir -
Usa questa configurazione per abilitare l'interfaccia utente persistente dell'app e salvare i registri degli eventi di Spark nella tua posizione S3. Imposta
logging.eventLog.diril percorso S3 per i registri degli eventi. InmonitoringConfiguration, impostato supersistentAppUI.ENABLEDNon impostarlospark.eventLog.dirquando lo usilogging.eventLog.dir; queste due configurazioni sono incompatibili. Sespark.eventLog.dirè impostata, tale configurazione ha la priorità e il contenitore di registrazione non è in grado di replicare i registri degli eventi di Spark. Ciò significa che la posizione S3 specificata dalogging.eventLog.dirnon riceverà i registri degli eventi e inoltre l'interfaccia utente dell'app persistente non funzionerà. -
logging.nativeSidecar -
Quando imposti questa proprietà su Amazon EMR versione 6.8.0 o successiva, Amazon EMR configura il contenitore di registrazione sul driver Spark e sui pod executor come contenitore sidecar Kubernetes nativo (vedi i dettagli sul sito Web) anziché come contenitore normale.
ENABLEDKubernetesCiò significa che il contenitore di registrazione si riavvia automaticamente in caso di errore e gli errori del contenitore di registrazione non causeranno il fallimento del pod. Requisito della versione del nodo
I tuoi nodi Amazon EKS devono eseguire Kubernetes la versione 1.29 o successiva. La versione del cluster EKS può essere diversa dalla versione del nodo. Se sui nodi è in esecuzione una versione precedente alla 1.29, Kubernetes non abilita la funzionalità sidecar nativa e il contenitore di registrazione impedisce l'avvio del driver, con conseguenti timeout del lavoro.
Esempi di classificazione del mittente di processi
In questa sezione
StartJobRunrichiesta con timeout di lavoro personalizzato
{ "name": "spark-python", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "job-start-timeout": "1800" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } }
StartJobRunrichiesta con registrazione disabilitata per gli executor pod
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "executor.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }
StartJobRunrichiesta con immagine del contenitore di registrazione personalizzato, CPU e memoria per i pod del driver e dell'executor
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.image": "YOUR_ECR_IMAGE_URL", "logging.request.memory": "200Mi", "logging.request.cores": "0.5" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }
Nota
Se il contenitore di registrazione Fluentd rileva un errore di memoria insufficiente (OOM), aumentate il valore. logging.request.memory Ad esempio, impostalo su per allocare più memoria 1Gi al contenitore di registrazione e prevenire problemi di OOM.
StartJobRunrichiesta con registro eventi Spark (destinazione Amazon S3)
L'esempio seguente salva i registri degli eventi di Spark nel tuo bucket Amazon S3 abilitando anche l'interfaccia utente dell'app persistente. L'persistentAppUIimpostazione è ENABLED predefinita.
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.eventLog.dir": "s3://my-bucket/event-logs/" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED" } }
Nota
Non inserirla spark.eventLog.dir nella spark-defaults classificazione quando la usilogging.eventLog.dir. Queste due configurazioni sono incompatibili. Se spark.eventLog.dir è impostata, tale configurazione ha la priorità e il contenitore di registrazione non è in grado di replicare i registri degli eventi di Spark. Ciò significa che la posizione S3 specificata da logging.eventLog.dir non riceverà i registri degli eventi e inoltre l'interfaccia utente dell'app persistente non funzionerà.
StartJobRunrichiesta con registrazione nativa del sidecar
L'esempio seguente abilita la modalità sidecar nativa per il contenitore di registrazione sui driver Spark e sui pod executor. Se abilitato, il contenitore di registrazione funziona come un sidecar Kubernetes nativo che si riavvia automaticamente in caso di errore e non influisce sullo stato dei pod Spark.
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.nativeSidecar": "ENABLED" } } ], "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://my-bucket/logs/" } } }
Requisito della versione del nodo
I tuoi nodi Amazon EKS devono eseguire Kubernetes la versione 1.29 o successiva. La versione del cluster EKS può essere diversa dalla versione del nodo. Se sui nodi è in esecuzione una versione precedente alla 1.29, Kubernetes non abilita la funzionalità sidecar nativa e il contenitore di registrazione impedisce l'avvio del driver, con conseguenti timeout del lavoro.