使用创建和管理 Amazon EMR EKS 集群 AWS Step Functions - AWS Step Functions

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

使用创建和管理 Amazon EMR EKS 集群 AWS Step Functions

学习如何集成 AWS Step Functions 与亚马逊EMR一起EKS使用 Amazon EMR on EKS 服务集成APIs。服务集成与相应APIs的 Amaz EMR on 相同 EKSAPIs,但并非所有集成模式都APIs支持所有集成模式,如下表所示。

要了解如何与集成 AWS Step Functions 中的服务,参见集成 服务和。在 Step Functions API 中向服务传递参数

EKS集成时优化的 Amaz EMR on 与 Amazon 上的 Amaz EMR on 有何不同 EKS AWS SDK整合
注意

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

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

在以下方面支持 Amaz EMR on EKSAPIs:

注意

在 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://<amzn-s3-demo-bucket>/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://<amzn-s3-demo-logging-bucket1>" } } }, "Tags": { "taskType": "jobName" } }, "End": true }

下面包括一个删除虚拟集群并等待删除完成的 Task 状态。

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

要了解有关配置的信息 IAM 使用时的权限 Step Functions 和其他 AWS 服务,请参阅Step Functions 如何为集成服务生成IAM策略