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
Amazon erstellt EMR auf EKS StartJobRun
Anfrage einen Job Submitter Pod (auch Job-Runner-Pod genannt), um den Spark-Treiber zu starten. Sie können die emr-job-submitter
Klassifizierung verwenden, um die Knotenauswahl für Ihren Job Submitter-Pod zu konfigurieren sowie das Bild und den Speicher für den Logging-Container des CPU Job-Absender-Pods festzulegen.
Die folgenden Einstellungen sind unter der Klassifizierung verfügbar: emr-job-submitter
jobsubmitter.node.selector.[
labelKey
]-
Fügt der Knotenauswahl des Pods, in dem der Auftrag eingereicht wurde, hinzu, wobei der Schlüssel
und der Wert als Konfigurationswert für die Konfiguration verwendet werden. Sie können beispielsweiselabelKey
jobsubmitter.node.selector.identifier
aufmyIdentifier
festlegen, dass der Pod des Auftragseinreichers über eine Knotenauswahl mit dem Schlüsselkennungswert vonmyIdentifier
verfügt. 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.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 Jobeinreichers 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.
Wir empfehlen, Pods für 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
- StartJobRun-Anfrage mit Einzel-AZ-Knotenplatzierung für den Pod, der den Auftrag einreicht
- StartJobRunAnfrage mit Single-AZ- und EC2 Amazon-Instance-Platzierung für den Job Submitter-Pod
- StartJobRunAnfrage mit benutzerdefiniertem Logging-Container-Image und Speicher CPU
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
StartJobRun
-Anfrage mit Einzel-AZ-Knotenplatzierung für den Pod, der den Auftrag einreicht
cat >spark-python-in-s3-nodeselector-job-submitter-az.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.topology.kubernetes.io/zone": "Availability Zone
" } } ], "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-az.json
StartJobRun
Anfrage mit Single-AZ- und EC2 Amazon-Instance-Platzierung für den Job Submitter-Pod
{ "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.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6 --conf spark.sql.shuffle.partitions=1000" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false", } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone
", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge
" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } }
StartJobRun
Anfrage mit benutzerdefiniertem Logging-Container-Image und Speicher CPU
{ "name": "spark-python", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py" } }, "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" } } } }