本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EKS使用建立和管理 Amazon EMR 叢集 AWS Step Functions
瞭解如何整合 AWS Step Functions 與 Amazon EMR 在EKS服務集成EMR上EKS使用 Amazon APIs。服務整合APIs與對應的 Amazon EMR on 相同 EKSAPIs,但並非全部APIs支援所有整合模式,如下表所示。
若要瞭解如何整合 AWS 服務在 Step Functions 中,請參閱整合 服務和。將參數傳遞給 Step Functions 數API中的服務
如何優化EMR的 Amazon EKS 集成是不同於 Amazon EMR 上 EKS AWS SDK整合
-
支援執行任務 (.sync)整合模式。
-
請求回應整合模式沒有最佳化。
-
不支援使用任務令牌等待回調整合模式。
注意
為了與 Amazon 整合EMR,Step Functions 在此之後的前 10 分鐘和 300 秒內具有硬編碼的 60 秒任務輪詢頻率。
API | 請求回應 | 執行工作 (.sync) |
---|---|---|
CreateVirtualCluster | 支援 | 不支援 |
DeleteVirtualCluster | 支援 | 支援 |
StartJobRun | 支援 | 支援 |
支持 Amazon EMR 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原則。