在 EKS 上致電 Amazon EMR AWS Step Functions - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 EKS 上致電 Amazon EMR AWS Step Functions

Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務將參數傳遞至服務 API

EKS 整合上最佳化的 Amazon EMR 與 EKS SDK 整合上的 Amazon EMR 有何不同 AWS
注意

為了與 Amazon EMR 整合,Step Functions 在此之後的前 10 分鐘和 300 秒內具有 60 秒的硬式編碼任務輪詢頻率。

若要 AWS Step Functions 與 EKS 上的 Amazon EMR 整合,請使用 Amazon EMR 上 EKS 服務整合 API。服務整合 API 與 EKS API 上對應的 Amazon EMR 相同,但並非所有 API 都支援所有整合模式,如下表所示。

API 請求回應 執行工作 (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

在 EKS API 上支持的 Amazon EMR:

注意

「Step Functions 數」中的工作有最大輸入或結果資料大小的配額。當您傳送至其他服務或從其他服務接收資料時,這會將您限制為 256 KB 的資料,做為 UTF-8 編碼字串。請參閱與狀態機器執行相關的配額

以下內容包括建Task立虛擬叢集的狀態。

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

以下內容包括將工作送出至虛擬叢集並等待其完成的Task狀態。

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

以下內容包括刪除虛擬叢集並等待刪除完成的Task狀態。

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

如需Step Functions與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱整合式服務的 IAM 政策