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 CPUs, 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 nel pod job submitter. Per impostazione predefinita, questo valore è 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 imagePullPolicyi contenitori del pod job submitter.

Consigliamo di posizionare i job submitter pod su istanze On-Demand. L'inserimento dei pod Job Submitter sulle istanze Spot potrebbe causare un errore del lavoro se l'istanza su 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

Richiesta StartJobRun con posizionamento dei nodi on demand per il pod del mittente di processi

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 chiavededicated, valore graviton_machinesNoExecute, effetto e una di 60 secondi tolerationSeconds

"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" } } ] }