Erstellen und verwalten Sie EMR Amazon-Cluster auf EKS mit AWS Step Functions - AWS Step Functions

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.

Erstellen und verwalten Sie EMR Amazon-Cluster auf EKS mit AWS Step Functions

Erfahren Sie, wie Sie sich AWS Step Functions mit Amazon EMR EMR on EKS EKS Service integrieren könnenAPIs. Die Serviceintegration APIs ist dieselbe wie bei der entsprechenden Amazon EMR On EKSAPIs, aber nicht alle APIs unterstützen alle Integrationsmuster, wie in der folgenden Tabelle dargestellt.

Step Functions kann bestimmte AWS Dienste direkt von Amazon States Language (ASL) aus steuern. Weitere Informationen hierzu finden Sie unter Integration anderer Services und Übergeben von Parametern an einen Dienst API in Step Functions.

Wie sich die optimierte EMR EKS Amazon-On-Integration von der EMR EKS AWS SDK Amazon-On-Integration unterscheidet
Anmerkung

Für die Integration mit Amazon EMR verfügt Step Functions über eine fest codierte Jobabfragefrequenz von 60 Sekunden für die ersten 10 Minuten und danach 300 Sekunden.

API Antwort anfordern Führen Sie einen Job aus (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

Unterstützt Amazon EMR auf EKSAPIs:

Anmerkung

In Step Functions gibt es ein Kontingent für die maximale Eingabe- oder Ergebnisdatengröße für eine Aufgabe. Dadurch sind Sie auf 256 KB an Daten als UTF -8-kodierte Zeichenfolge beschränkt, wenn Sie Daten an einen anderen Dienst senden oder von einem anderen Dienst empfangen. Siehe Kontingente im Zusammenhang mit der Ausführung von Zustandsmaschinen.

Im Folgenden wird ein Task Status beschrieben, der einen virtuellen Cluster erstellt.

"Create_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:createVirtualCluster", "Parameters": { "Name": "MyVirtualCluster", "ContainerProvider": { "Id": "EKSClusterName", "Type": "EKS", "Info": { "EksInfo": { "Namespace": "Namespace" } } } }, "End": true }

Im Folgenden wird ein Task Status beschrieben, der einen Auftrag an einen virtuellen Cluster weiterleitet und auf dessen Abschluss wartet.

"Submit_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:startJobRun.sync", "Parameters": { "Name": "MyJobName", "VirtualClusterId.$": "$.VirtualClusterId", "ExecutionRoleArn": "arn:aws:iam::<accountId>:role/job-execution-role", "ReleaseLabel": "emr-6.2.0-latest", "JobDriver": { "SparkSubmitJobDriver": { "EntryPoint": "s3://<mybucket>/jobs/trip-count.py", "EntryPointArguments": [ "60" ], "SparkSubmitParameters": "--conf spark.driver.cores=2 --conf spark.executor.instances=10 --conf spark.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=10G --conf spark.driver.memory=10G --conf spark.executor.cores=1 --conf spark.dynamicAllocation.enabled=false" } }, "ConfigurationOverrides": { "ApplicationConfiguration": [ { "Classification": "spark-defaults", "Properties": { "spark.executor.instances": "2", "spark.executor.memory": "2G" } } ], "MonitoringConfiguration": { "PersistentAppUI": "ENABLED", "CloudWatchMonitoringConfiguration": { "LogGroupName": "MyLogGroupName", "LogStreamNamePrefix": "MyLogStreamNamePrefix" }, "S3MonitoringConfiguration": { "LogUri": "s3://<mylogsbucket>" } } }, "Tags": { "taskType": "jobName" } }, "End": true }

Der folgende Status beinhaltet einen Task Status, der einen virtuellen Cluster löscht und darauf wartet, dass der Löschvorgang abgeschlossen ist.

"Delete_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:deleteVirtualCluster.sync", "Parameters": { "Id.$": "$.VirtualClusterId" }, "End": true }

Informationen zur Konfiguration von IAM Berechtigungen bei der Verwendung Step Functions mit anderen AWS Diensten finden Sie unter. So generiert Step Functions IAM Richtlinien für integrierte Dienste