本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 EKS 上致電 Amazon EMR AWS Step Functions
Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務 和 將參數傳遞至服務 API。
EKS 整合上最佳化的 Amazon EMR 與 EKS SDK 整合上的 Amazon EMR 有何不同 AWS
-
支援執行任務 (.sync)整合模式。
-
請求回應整合模式沒有最佳化。
-
不支援等候傳回任務字符的回呼整合模式。
注意
為了與 Amazon EMR 整合,Step Functions 在此之後的前 10 分鐘和 300 秒內具有 60 秒的硬式編碼任務輪詢頻率。
若要 AWS Step Functions 與 EKS 上的 Amazon EMR 整合,請使用 Amazon EMR 上 EKS 服務整合 API。服務整合 API 與 EKS API 上對應的 Amazon EMR 相同,但並非所有 API 都支援所有整合模式,如下表所示。
API | 請求回應 | 執行工作 (.sync) |
---|---|---|
CreateVirtualCluster | ✓ | |
DeleteVirtualCluster | ✓ | ✓ |
StartJobRun | ✓ | ✓ |
在 EKS API 上支持的 Amazon EMR:
注意
「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://<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與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱整合式服務的 IAM 政策。