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
selectorKeyund der Wert als Konfigurationswert verwendet werden. Sie können beispielsweise festlegenjobsubmitter.node.selector.identifier, dass der Pod für den Auftragseinreicher über eine Knotenauswahl mit einem SchlüsselmyIdentifierund einem Wert verfügt.identifiermyIdentifierDies 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
labelKeyund 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
annotationKeyund 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 tolerationKeyund 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.EqualsWenn der Konfigurationswert auf gesetzt ist"", dann ist der Operator.Exists -
jobsubmitter.node.toleration.[tolerationKey].[effect] -
Fügt dem
tolerationKeyPräfix einen Toleranzeffekt hinzu. Dieses Feld ist beim Hinzufügen von Toleranzen erforderlich. Die zulässigen Werte für das Effektfeld sindNoExecuteNoSchedule, undPreferNoSchedule. -
jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds] -
Fügt dem Präfix TolerationSeconds hinzu.
tolerationKeyOptionales 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
DISABLEDder Logging-Container aus dem Pod des Auftragseinreichers entfernt, wodurch jegliche Protokollierung für diesen Pod deaktiviert wird, diemonitoringConfigurationim angegeben ist, z. B. oder.s3MonitoringConfigurationcloudWatchMonitoringConfigurationWenn 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 imagePullPolicy
fü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
In diesem Abschnitt
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" } } ] }