竞价实例

当您希望以较低的成本执行Spark作业(包括Spark SQL作业和Spark Jar作业)时,可以为Job型资源组开启竞价实例功能。开启竞价实例功能后,集群会尝试使用闲置(更低价)的Spark Executor资源执行Spark作业。本文主要介绍什么是竞价实例,竞价实例的应用场景以及使用方法。

什么是竞价实例

AnalyticDB for MySQL资源池中会有一些闲置的Spark Executor资源,资源会以折扣的方式进行售卖,这些资源也被称为竞价实例(抢占式实例)。

竞价实例资源与ACU弹性资源有以下区别:

  • 竞价实例资源费用比ACU弹性资源的费用更低,大约是ACU弹性资源费用的7折左右。

  • 当您在已开启竞价实例功能的Job型资源组中提交Spark作业时,集群会优先抢占闲置、低价的竞价实例资源,若抢占成功,该Spark作业在执行时会使用竞价实例资源,并按照竞价实例资源计费;若抢占失败,该Spark作业会使用ACU弹性资源,按照ACU弹性资源计费。

  • 阿里云为AnalyticDB for MySQL竞价实例默认提供一小时保护期,保证在一小时内竞价实例的资源不会因其他资源抢占而释放。超过竞价实例保护期后,竞价实例的资源可能会被抢占,抢占的概率随资源使用时间增加而增加。

  • 使用竞价实例资源执行Spark作业的优先级较低。当其他集群提交了不使用竞价实例资源的Spark作业时,有可能会抢占您的竞价实例资源,导致竞价实例资源释放,进而导致使用竞价实例的Spark作业运行失败。竞价实例释放导致作业失败的概率大约为1%~5%。

应用场景及建议

建议您在以下场景中开启竞价实例功能:

  • Spark作业开发。

  • 对成本较为敏感。

  • 对Spark作业失败的容忍度较高。

  • 大部分Spark作业的执行时间在一小时以内。

对于混合型业务(既有执行时间超过一小时的作业,也有执行时间小于一小时的作业)场景,有以下建议:

  • 创建两个Job型资源组,其中一个资源组开启竞价实例功能,且在该资源组中仅执行运行时间较短的任务;另一个资源组不开启竞价实例功能,在该资源组中仅执行运行时间较长的作业。

  • 创建一个Job型资源组且开启竞价实例功能,在执行Spark作业时,通过配置spark.adb.spotInstance.disabled参数指定该Spark作业不使用竞价实例功能。详情,请参见指定Spark作业不使用竞价实例(可选)

使用限制

  • 仅部分地域支持竞价实例:华北1(青岛)、华北2(北京)、华北3(张家口)、华东1(杭州)、华东2(上海)、华南1(深圳)、华南3(广州)、中国(香港)、日本(东京)、新加坡、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)、英国(伦敦)。

  • 仅支持为Job型资源组开启竞价实例功能,开启该功能后,并不意味该资源组中所有的资源和所有Spark作业都会使用竞价实例,仅意味该资源组中的Spark作业在执行时会尝试使用竞价实例功能。

  • 仅支持Spark作业使用竞价实例功能。

  • 仅部分Spark Executor规格支持竞价实例:large和2xlarge。Spark Executor资源规格的详细信息,请参见Spark Executor资源规格

费用说明

竞价实例资源的费用相较于原本的ACU弹性资源费用有一定的折扣,大约为7折。费用详情,请参见湖仓版产品定价

说明

集群中未被分配的计算预留资源可以用于抵扣竞价实例资源,若使用的竞价实例资源总量小于未被分配的计算预留资源,则直接抵扣;反之超出部分将按照竞价实例资源的费用计费。竞价实例资源使用量的查看方法,请参见查看竞价实例的计算资源用量

开启竞价实例

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击集群管理>资源管理,单击资源组管理页签。

    为已有Job型资源组开启竞价实例

    1. 单击Job型资源组操作列的修改

    2. 在弹出的修改资源组面板中,打开竞价实例开关。

    3. 单击确定

    4. 在资源组对应的竞价实例列查看是否已开启竞价实例功能。

      开启竞价实例功能后,Job型资源组上所运行的Spark作业都会尝试使用竞价实例功能。

    创建Job型资源组时开启竞价实例

    1. 单击资源组列表右上角的新增资源组,并填写资源组信息。

      参数名称

      说明

      资源组名称

      自定义资源组的名称。输入长度在2~30位,以字母开头,只能包含字母、数字和下划线。

      任务类型

      在下拉列表中选择JobJob型资源组主要适用于高吞吐离线场景,使用按需弹性方式进行计算资源扩容和缩容。

      计算最小资源

      最小取值为0 ACU。

      计算最大资源

      控制台可设置的计算最大资源为1024 ACU,步长为8 ACU。若您有需求,可提交工单联系技术支持调大资源。

      竞价实例

      是否开启竞价实例。

      开启竞价实例后,运行在Job型资源组上的Spark作业会尝试使用竞价实例资源。更多信息,请参见竞价实例

    2. 单击确定,完成新建资源组。

    3. 资源组创建后,在资源组对应的竞价实例列查看是否已开启竞价实例功能。

      开启竞价实例功能后,Job型资源组上所运行的Spark作业都会尝试使用竞价实例功能。

指定Spark作业不使用竞价实例(可选)

若您不希望Spark作业在执行时使用竞价实例功能,可以在Spark作业的CONF参数中配置以下参数:

参数名称

是否必填

参数说明

spark.adb.spotInstance.disabled

Spark作业在执行时是否使用竞价实例。取值:

  • true:不使用竞价实例。

  • false(默认值):使用竞价实例。

作业执行成功后,您可以通过查看竞价实例资源使用量,确认配置是否修改成功。如果竞价实例资源使用量为0,则表示提交的Spark作业在执行时未使用竞价实例资源。

查看竞价实例资源使用量

Spark作业执行完成后,您可以在Job型资源组的监控页面查看竞价实例资源的使用量。具体步骤及说明,请参见查看资源组的计算资源用量

关闭竞价实例

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击集群管理>资源管理,单击资源组管理页签。

  3. 单击Job型资源组操作列的修改

  4. 在弹出的修改资源组面板中,关闭竞价实例开关。

  5. 单击确定

  6. 在资源组对应的竞价实例列查看是否已关闭竞价实例功能。

相关API

API名称

说明

CreateDBResourceGroup - 创建资源组

企业版、基础版及湖仓版集群创建资源组。

ModifyDBResourceGroup - 修改资源组

修改企业版、基础版及湖仓版集群的已有资源组。

DescribeDBResourceGroup - 查询资源组

查询企业版、基础版及湖仓版集群的资源组信息。

DescribeClusterResourceDetail - 查询集群资源具体使用详情

查询企业版、基础版及湖仓版集群的资源使用详情。