You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Boto3 EMR API不支持OnDemandPrice 如何通过Boto3配置EMR Spot实例

Boto3创建EMR Spark集群Spot实例组的解决方案

错误原因

你遇到的ValidationException报错是因为仅配置BidPrice参数不足以切换实例组的采购模式,EMR默认所有实例组为按需实例,给按需实例配置竞价参数就会触发校验失败。

解决方案

在实例组配置中额外添加Market字段,值设为SPOT即可指定该实例组采用Spot实例采购模式,修改后的正确配置如下:

'Name': 'Core - 2',
'InstanceRole': 'CORE',
'InstanceType': 'i3.2xlarge',
'InstanceCount': 50,
'Market': 'SPOT', # 新增字段指定实例为Spot模式
'BidPrice': 'OnDemandPrice'

配置说明

  • Market字段可选值为ON_DEMAND(默认)和SPOT,仅当值为SPOT时才支持配置BidPrice参数
  • BidPrice填OnDemandPrice代表以对应实例的按需价格作为竞价上限,也可填入具体数值的字符串(例如'0.3')自定义竞价上限

调用示例

完整的实例组配置在run_job_flow接口中的位置参考:

import boto3

emr_client = boto3.client('emr', region_name='your-region')
response = emr_client.run_job_flow(
    Name='your-spark-cluster',
    ReleaseLabel='emr-6.10.0', # 替换为你需要的EMR版本
    Instances={
        'InstanceGroups': [
            # Master实例组(建议用按需)
            {
                'Name': 'Master',
                'InstanceRole': 'MASTER',
                'InstanceType': 'm5.xlarge',
                'InstanceCount': 1,
                'Market': 'ON_DEMAND'
            },
            # Core实例组(Spot模式)
            {
                'Name': 'Core - 2',
                'InstanceRole': 'CORE',
                'InstanceType': 'i3.2xlarge',
                'InstanceCount': 50,
                'Market': 'SPOT',
                'BidPrice': 'OnDemandPrice'
            }
        ],
        'Ec2KeyName': 'your-ec2-key',
        'KeepJobFlowAliveWhenNoSteps': True,
        'TerminationProtected': False
    },
    # 其他配置:应用、角色、步骤等按你原有需求补充
    Applications=[{'Name': 'Spark'}, {'Name': 'Hadoop'}],
    JobFlowRole='EMR_EC2_DefaultRole',
    ServiceRole='EMR_DefaultRole'
)

注意事项

  • Master实例组建议保持按需实例模式,避免Spot实例回收导致集群整体不可用
  • 配置完成后可通过emr_client.describe_cluster(ClusterId='your-cluster-id')返回的InstanceGroups字段,验证实例组的采购模式和竞价配置是否生效
  • 如果需要配置Spot实例的回收策略、容量优化分配等高级特性,可以在实例组配置中添加SpotProvisioningSpecification参数做定制

内容的提问来源于stack exchange,提问作者Riley Hun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:06:01