View a markdown version of this page

Uso della classificazione del mittente di processi - Amazon EMR

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à.

Uso della classificazione del mittente di processi

Panoramica di

La richiesta StartJobRun di Amazon EMR su EKS crea un pod del mittente di processi (noto anche come pod job-runner) per generare il driver Spark. È possibile utilizzare la emr-job-submitter classificazione per configurare i selettori di nodi, aggiungere tolleranze, personalizzare la registrazione e apportare altre modifiche al pod job submitter.

Le seguenti impostazioni sono disponibili nella classificazione: emr-job-submitter

jobsubmitter.node.selector.[selectorKey]

Si aggiunge al selettore di nodi del pod job submitter, con key selectorKey e value come valore di configurazione. Ad esempio, puoi impostare su myIdentifier e jobsubmitter.node.selector.identifier il pod job submitter avrà un selettore di nodi con una chiave e un valore. identifier myIdentifier Questo può essere usato per specificare su quali nodi può essere posizionato il pod job submitter. Per aggiungere più chiavi di selettore di nodi, imposta più configurazioni con questo prefisso.

jobsubmitter.label.[labelKey]

Si aggiunge alle etichette del pod job submitter, con key labelKey e the value come valore di configurazione. Per aggiungere più etichette, imposta più configurazioni con questo prefisso.

jobsubmitter.annotation.[annotationKey]

Si aggiunge alle annotazioni del pod job submitter, con key annotationKey e the value come valore di configurazione. Per aggiungere più annotazioni, imposta più configurazioni con questo prefisso.

jobsubmitter.node.toleration.[tolerationKey]

Aggiunge tolleranze al contenitore Job Submitter. Per impostazione predefinita, non vengono aggiunte tolleranze al pod. La chiave della tolleranza sarà tolerationKey e il valore della tolleranza sarà il valore di configurazione. Se il valore di configurazione è impostato su una stringa non vuota, l'operatore lo sarà. Equals Se il valore di configurazione è impostato su"", l'operatore lo saràExists.

jobsubmitter.node.toleration.[tolerationKey].[effect]

Aggiunge un effetto di tolleranza al prefissotolerationKey. Questo campo è obbligatorio quando si aggiungono tolleranze. I valori consentiti per il campo dell'effetto sono NoExecuteNoSchedule, ePreferNoSchedule.

jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds]

Aggiunge TolerationSeconds al prefisso. tolerationKey Campo opzionale. Applicabile solo quando l'effetto èNoExecute.

jobsubmitter.scheduler.name

Imposta un SchedulerName personalizzato per il pod job submitter.

jobsubmitter.logging

Abilita o disabilita la registrazione sul pod Job Submitter. Quando è impostato su, DISABLED il contenitore di registrazione viene rimosso dal pod job submitter, il che disabiliterà qualsiasi registrazione per questo pod specificata in, ad esempio o. monitoringConfiguration s3MonitoringConfiguration cloudWatchMonitoringConfiguration Quando questa impostazione non è impostata o è impostata su un altro valore, la registrazione sul pod job submitter è abilitata.

jobsubmitter.logging.image

Imposta un'immagine personalizzata da utilizzare per il contenitore di registrazione nel pod job submitter.

jobsubmitter.logging.request.cores

Imposta un valore personalizzato per il numero di CPU, in unità CPU, per il contenitore di registrazione sul pod job submitter. Per impostazione predefinita, questo valore è impostato su 100 m.

jobsubmitter.logging.request.memory

Imposta un valore personalizzato per la quantità di memoria, in byte, per il contenitore di registrazione sul pod job submitter. Per impostazione predefinita, è impostato su 200 Mi. Un mebibyte è un'unità di misura simile a un megabyte.

jobsubmitter.container.image

Imposta un'immagine personalizzata per il contenitore del pod job submitter. job-runner

jobsubmitter.container.image.pullPolicy

Imposta l'immagine PullPolicy per i contenitori del pod job submitter.

jobsubmitter.gracefulTermination

Per impostazione predefinita o quando questa configurazione è impostata sufalse, dopo che il pod job runner ha creato il driver pod, continua a funzionare, controlla il driver pod e registra periodicamente lo stato del driver per tutta la durata del lavoro. Quando questa configurazione è impostata sutrue, il pod job runner termina invece immediatamente dopo l'avvio del driver pod Spark. Ciò significa che il pod job runner consuma CPU e memoria per meno tempo, ma i log del job runner non sono più disponibili.

Consigliamo di posizionare i job submitter pod su Instances. On-Demand L'inserimento dei pod job submitter sulle istanze Spot potrebbe causare un errore del lavoro se l'istanza in cui viene eseguito il pod job submitter è soggetta a un'interruzione dell'istanza Spot. Puoi anche posizionare il pod job submitter in un'unica zona di disponibilità o utilizzare qualsiasi etichetta Kubernetes applicata ai nodi.

Esempi di classificazione del mittente di processi

StartJobRunrichiesta con posizionamento dei On-Demand nodi per il pod Job Submitter

cat >spark-python-in-s3-nodeselector-job-submitter.json << EOF { "name": "spark-python-in-s3-nodeselector", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py", "sparkSubmitParameters": "--conf spark.driver.cores=5 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false" } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.eks.amazonaws.com/capacityType": "ON_DEMAND" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } } EOF aws emr-containers start-job-run --cli-input-json file:///spark-python-in-s3-nodeselector-job-submitter.json

StartJobRunrichiesta con posizionamento del nodo Single-AZ e posizionamento del tipo di istanza Amazon EC2 per il pod Job Submitter

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge" } } ] }

StartJobRunrichiesta con etichette, annotazioni e uno scheduler personalizzato per il pod Job Submitter

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.label.label1": "value1", "jobsubmitter.label.label2": "value2", "jobsubmitter.annotation.ann1": "value1", "jobsubmitter.annotation.ann2": "value2", "jobsubmitter.scheduler.name": "custom-scheduler" } } ] }

StartJobRunrichiesta con una tolleranza applicata al pod job submitter con chiave dedicata, valore graviton_machines, effect e un tolerationSeconds di 60 secondi NoExecute

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.toleration.dedicated":"graviton_machines", "jobsubmitter.node.toleration.dedicated.effect":"NoExecute", "jobsubmitter.node.toleration.dedicated.tolerationSeconds":"60" } } ] }

StartJobRunrichiesta con registrazione disabilitata per il pod job submitter

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunrichiesta con immagine del contenitore di registrazione personalizzata, CPU e memoria per il pod job submitter

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging.image": "YOUR_ECR_IMAGE_URL", "jobsubmitter.logging.request.memory": "200Mi", "jobsubmitter.logging.request.cores": "0.5" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunrichiesta con un'immagine del contenitore Job Submitter e una policy pull personalizzate

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.container.image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/emr6.11_custom_repo", "jobsubmitter.container.image.pullPolicy": "kubernetes pull policy" } } ] }

StartJobRunrichiesta con terminazione ordinata abilitata per il pod Job Submitter

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.gracefulTermination": "true" } } ] }