本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建和管理 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整合
-
支持运行作业 (.sync) 集成模式。
-
没有针对请求响应集成模式的优化。
-
不支持等待带有任务令牌的回调集成模式。
注意
为了与亚马逊集成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策略。