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

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

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

了解如何使用 EKS 上的 Amazon EMR 服务集成 AWS Step Functions 与 EKS 上的亚马逊 EMR 集成。 APIs服务集成与 EKS 上相应 APIs 的 Amazon EMR 相同 APIs,但并非所有集成模式都 APIs 支持所有集成模式,如下表所示。

要了解如何在 Step Functions 中与 AWS 服务集成,请参阅集成 服务在 Step Functions 中将参数传递给服务 API

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

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

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

在 EKS 上支持亚马逊 EMR: APIs

注意

在 Step Functions 中,任务的最大输入或结果数据大小有一个配额。这样,当您向其他服务发送数据或从其他服务接收数据时,您只能使用 256 KiB 的数据作为 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 策略