本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon EMR on EKSAmazon Step Functions
Step Functions 可以控制某些Amazon服务直接来自亚马逊状态语言。有关使用的更多信息Amazon Step Functions及其集成,请参阅以下内容。
-
这些区域有:运行作业 (.sync)支持集成模式。
-
没有针对请求响应集成模式。
-
这些区域有:等待具有任务令牌的回调不支持集成模式。
集成Amazon Step Functions在 EKS 上使用 Amazon EMR 时,使用亚马逊 EMR on EKS 服务集成 API。服务集成 API on EMR KS API on EKS API on EKS API on EKS
API | 请求响应 | 运行作业 (.sync) |
---|---|---|
CreateVirtualCluster | ✓ | |
DeleteVirtualCluster | ✓ | ✓ |
StartJobRun | ✓ | ✓ |
Amazon EMR on EKS API
Step Functions 中任务的最大输入或结果数据大小。这样,当您向其他服务发送数据或从其他服务接收数据时,将数据限制为 262,144 字节作为 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
}
有关在将Step Functions 与其他Amazon服务,请参阅集成服务的 IAM 政策.