本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建和管理 Amazon EMR EKS 集群 Amazon Step Functions
了解如何EKS使用 Amaz EMR on EMR on EKS 服务集成 Amazon Step Functions 与亚马逊集成APIs。服务集成与相应APIs的 Amaz EMR on 相同 EKSAPIs,但并非所有集成模式都APIs支持所有集成模式,如下表所示。
要了解如何在 Step Functions 中与 Amazon 服务集成,请参阅集成 服务和在 Step Functions API 中向服务传递参数。
集成时优化的 Amaz EMR on EKS 与集成时的 Amaz EMR on EKS Amazon SDK 有何不同
-
支持运行作业 (.sync) 集成模式。
-
没有针对请求响应集成模式的优化。
-
不支持等待具有任务令牌的回调集成模式。
注意
为了与亚马逊集成EMR,Step Functions在之后的前10分300秒内具有硬编码的60秒作业轮询频率。
API | 请求响应 | 运行作业 (.sync) |
---|---|---|
CreateVirtualCluster | 支持 | 不支持 |
DeleteVirtualCluster | 支持 | 支持 |
StartJobRun | 支持 | 支持 |
在以下方面支持 Amaz EMR on EKSAPIs:
注意
在 Step Functions 中,任务的最大输入或结果数据大小有一个配额。这会限制您在向其他服务发送数据或从其他服务接收数据时,以 -8 编码字符串形式存储 256 KiB 的数据。UTF请参阅 与状态机执行相关的配额。
以下内容包含一个创建虚拟集群的 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 对于其他 Amazon 服务,请参阅Step Functions 如何为集成服务生成 IAM 策略。