使用以下方式在 EKS 上致电 Amazon EMR Amazon Step Functions - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用以下方式在 EKS 上致电 Amazon EMR Amazon Step Functions

Step Functions 可以直接从 Amazon States Language (ASL) 控制某些 Amazon 服务。要了解更多信息,请参阅使用其他服务将参数传递给服务 API

EKS 上优化的亚马逊 EMR 集成与 EKS 上的 Amazon EMR SDK 集成有何不同 Amazon
注意

为了与 Amazon EMR 集成,Step Functions 在前 10 分钟具有硬编码的 60 秒作业轮询频率,10 分钟后为 300 秒作业轮询频率。

要在 EKS 上 Amazon Step Functions 与 Amazon EMR 集成,请使用 EKS 上的 Amazon EMR 服务集成 API。服务集成 API 与相应的 Amazon EMR on EKS API 相同,但并非所有 API 都支持所有集成模式,如下表所示。

API 请求响应 运行作业 (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

支持的 Amazon EMR on EKS API

注意

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

有关在与其他 Amazon 服务Step Functions一起使用时如何配置IAM权限的信息,请参阅集成服务的 IAM 策略