Verwenden der Auftragserteilung - Amazon EMR

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.

Verwenden der Auftragserteilung

-Übersicht

Die Amazon EMR in EKS-StartJobRun-Anfrage erstellt einen Auftrag-Submitter-Pod (auch Auftrag-Runner-Pod genannt), um den Spark-Treiber zu starten. Sie können die emr-job-submitter Klassifizierung verwenden, um Knotenselektoren zu konfigurieren, Toleranzen hinzuzufügen, die Protokollierung anzupassen und andere Änderungen am Job Submitter-Pod vorzunehmen.

Die folgenden Einstellungen sind unter der Klassifizierung verfügbar: emr-job-submitter

jobsubmitter.node.selector.[selectorKey]

Fügt der Knotenauswahl des Pods, in dem der Job eingereicht wurde, hinzu, wobei der Schlüssel selectorKey und der Wert als Konfigurationswert verwendet werden. Sie können beispielsweise festlegen jobsubmitter.node.selector.identifier, dass der Pod für den Auftragseinreicher über eine Knotenauswahl mit einem Schlüssel myIdentifier und einem Wert verfügt. identifier myIdentifier Dies kann verwendet werden, um anzugeben, auf welchen Knoten der Pod des Auftragseinreichers platziert werden kann. Um mehrere Knotenauswahltasten hinzuzufügen, legen Sie mehrere Konfigurationen mit diesem Präfix fest.

jobsubmitter.label.[labelKey]

Fügt den Beschriftungen des Pods des Auftragseinreichers hinzu, wobei der Schlüssel labelKey und der Wert als Konfigurationswert verwendet werden. Um mehrere Labels hinzuzufügen, legen Sie mehrere Konfigurationen mit diesem Präfix fest.

jobsubmitter.annotation.[annotationKey]

Fügt den Anmerkungen im Pod des Jobeinreichers hinzu, wobei der Schlüssel annotationKey und der Wert als Konfigurationswert verwendet werden. Um mehrere Anmerkungen hinzuzufügen, legen Sie mehrere Konfigurationen mit diesem Präfix fest.

jobsubmitter.node.toleration.[tolerationKey]

Fügt dem Pod des Stelleneinreichers Toleranzen hinzu. Standardmäßig werden dem Pod keine Toleranzen hinzugefügt. Der Schlüssel der Toleranz ist tolerationKey und der Wert der Toleranz wird der Konfigurationswert sein. Wenn der Konfigurationswert auf eine nicht leere Zeichenfolge gesetzt ist, gilt dies auch für den Operator. Equals Wenn der Konfigurationswert auf gesetzt ist"", dann ist der Operator. Exists

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

Fügt dem tolerationKey Präfix einen Toleranzeffekt hinzu. Dieses Feld ist beim Hinzufügen von Toleranzen erforderlich. Die zulässigen Werte für das Effektfeld sind NoExecuteNoSchedule, undPreferNoSchedule.

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

Fügt dem Präfix TolerationSeconds hinzu. tolerationKey Optionales Feld. Gilt nur, wenn der Effekt ist. NoExecute

jobsubmitter.scheduler.name

Legt einen benutzerdefinierten SchedulerName für den Pod des Auftragseinreichers fest.

jobsubmitter.logging

Aktiviert oder deaktiviert die Protokollierung im Pod des Auftragseinreichers. Wenn diese Option aktiviert ist, wird DISABLED der Logging-Container aus dem Pod des Auftragseinreichers entfernt, wodurch jegliche Protokollierung für diesen Pod deaktiviert wird, die monitoringConfiguration im angegeben ist, z. B. oder. s3MonitoringConfiguration cloudWatchMonitoringConfiguration Wenn diese Einstellung nicht oder auf einen anderen Wert gesetzt ist, ist die Protokollierung im Pod des Auftragseinreichers aktiviert.

jobsubmitter.logging.image

Legt ein benutzerdefiniertes Bild fest, das für den Logging-Container im Pod des Auftragseinreichers verwendet werden soll.

jobsubmitter.logging.request.cores

Legt einen benutzerdefinierten Wert für die Anzahl der CPUs Logging-Container im Pod des Auftragseinreichers in CPU-Einheiten fest. Standardmäßig ist dieser Wert auf 100 m festgelegt.

jobsubmitter.logging.request.memory

Legt einen benutzerdefinierten Wert für die Speichergröße (in Byte) für den Logging-Container im Pod des Auftragseinreichers fest. Standardmäßig ist dieser Wert auf 200 Mi festgelegt. Ein Mebibyte ist eine Maßeinheit, die einem Megabyte ähnelt.

jobsubmitter.container.image

Legt ein benutzerdefiniertes Bild für den Container des Pods des Auftragseinreichers fest. job-runner

jobsubmitter.container.image.pullPolicy

Legt die Container imagePullPolicyfür den Pod des Jobeinreichers fest.

Wir empfehlen, die Pods der Stellenabsender auf On-Demand-Instances zu platzieren. Das Platzieren von Pods für Job-Absender auf Spot-Instances kann zu einem Job-Fehlschlag führen, wenn die Instance, auf der der Pod für den Job-Absender ausgeführt wird, von einer Spot-Instance-Unterbrechung betroffen ist. Sie können den Pod des Auftragseinreichers auch in einer einzigen Availability Zone platzieren oder beliebige Kubernetes-Labels verwenden, die auf die Knoten angewendet werden.

Beispiele für die Klassifizierung von Auftragseinreichern

StartJobRun-Anfrage mit On-Demand-Knotenplatzierung für den Pod des Auftrageinreichers

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

StartJobRunAnfrage mit Single-AZ-Knotenplatzierung und Amazon EC2 EC2-Instance-Typ-Platzierung für den Job Submitter-Pod

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

StartJobRunAnfrage mit Bezeichnungen, Anmerkungen und einem benutzerdefinierten Scheduler für den Pod des Jobeinreichers

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

StartJobRunAnfrage mit einer Toleranz, die auf den Pod des Job-Absenders mit Schlüsseldedicated, Wert graviton_machinesNoExecute, Effekt und einer Dauer von 60 Sekunden angewendet wurde 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" } } ] }

StartJobRunAnfrage mit deaktivierter Protokollierung für den Job Submitter-Pod

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

StartJobRunAnfrage mit benutzerdefiniertem Logging-Container-Image, CPU und Speicher für den Pod des Jobeinreichers

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

StartJobRunAnfrage mit einem benutzerdefinierten Container-Image für den Job-Absender und einer Pull-Richtlinie

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