在使用Boto3創建EMR spark集群時遇到了一些麻煩。我遇到的錯誤如下:
botocore.exceptions.ClientError: 在呼叫RunJobFlow操作時發生了一個錯誤(ValidationException)。試圖設定投標價格for on demand實體組。
我指定的這個配置如下:
'Name': 'Core - 2',
'InstanceRole': 'CORE',
'InstanceType': 'i3.2xlarge',
'InstanceCount': 50,
'BidPrice': 'OnDemandPrice',
似乎Boto3的API不允許這樣做,我也不想使用AWS Cli。有沒有一個變通的辦法,通過Boto3指定現貨實體呢?
uj5u.com熱心網友回復:
在boto3 repo中有一個關于這個問題的公開問題。就目前而言,如果你指定"Market": "SPOT",BidPriceAsPercentageOfOnDemandPrice將默認為100%,也就是按需價格。
下面是一個使用boto3==1.18.42的例子。
import boto3
client = boto3.client("emr", region_name="us-east-1")
回應 = client.run_job_flow(
Name="Boto3測驗集群"/span>。
ReleaseLabel="emr-5.33.0"。
Instances={
"KeepJobFlowAliveWhenNoSteps"。True,
"TerminationProtected": False,
"InstanceGroups": [
{
"InstanceRole": "MASTER"。
"InstanceCount": 1,
"InstanceType": "i3.2xlarge"。
"Name": "Master"。
},
{
"InstanceRole": "CORE",
"InstanceCount": 2,
"InstanceType": "i3.2xlarge"。
"Name": "Core",
"市場": "SPOT",
},
],
},
VisibleToAllUsers=True,
JobFlowRole="EMR_EC2_DefaultRole"。
ServiceRole="EMR_DefaultRole"。
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/308358.html
標籤:
