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 des Auftragseinreichers ü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 EffektNoExecute -
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 in CPU-Einheiten für den Logging-Container im Pod des Auftragseinreichers 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 das Bild PullPolicy für die Container
des Pods des Jobeinreichers fest. -
jobsubmitter.gracefulTermination -
Standardmäßig oder wenn diese Konfiguration auf eingestellt ist, läuft der Job Runner-Pod
false, nachdem er den Treiber-Pod erstellt hat, weiter, überwacht den Treiber-Pod und protokolliert in regelmäßigen Abständen den Treiberstatus für die gesamte Lebensdauer des Jobs. Wenn diese Konfiguration auf eingestellt isttrue, wird der Job Runner-Pod stattdessen sofort nach dem Start des Spark-Treiber-Pods beendet. Das bedeutet, dass der Job Runner-Pod CPU und Speicher für weniger Zeit verbraucht, die Job Runner-Protokolle jedoch nicht mehr verfügbar sind.
Wir empfehlen, Pods von Job-Einreichern auf Instances zu platzieren. On-Demand Das Platzieren von Job Submitter-Pods auf Spot-Instances kann zu einem Jobfehler führen, wenn die Instance, auf der der Job Submitter-Pod 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
StartJobRunAnfrage mit On-Demand Knotenplatzierung für den Pod des Jobeinreichers
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 Auftragseinreichers angewendet wurde, wobei der Schlüssel dediziert, der Wert graviton_machines, effect und der TolerationSeconds -Wert 60 Sekunden beträgt NoExecute
dediziert, der Wert graviton_machines, effect und der TolerationSeconds -Wert 60 Sekunden beträgt 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" } } ] }
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" } } ] }
StartJobRunAnfrage mit aktivierter ordnungsgemäßer Beendigung für den Pod, der den Job eingereicht hat
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.gracefulTermination": "true" } } ] }