当您的业务量需求不断波动时,建议您开启弹性伸缩功能并配置相应的伸缩规则,以便于E-MapReduce(简称EMR)可以按业务量波动增加或减少Task节点。确保作业完成的同时,可以节省成本。

前提条件

已新建弹性伸缩机器组,创建详情请参见新建弹性伸缩机器组

配置弹性伸缩

  1. 进入详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 在左侧导航栏中,选择弹性伸缩 > 弹性伸缩配置
  3. 弹性伸缩配置页面,单击配置规则
  4. 弹性伸缩配置页面,配置如下参数。
    1. 基础信息区域,配置相关参数。
      参数 描述
      最大实例数 弹性伸缩组的Task节点上限。一旦达到上限,即使满足弹性伸缩的规则,也不会继续执行弹性伸缩。最大实例数的上限为500。
      最小实例数 弹性伸缩的Task节点下限。如果弹性伸缩规则中设置的增加或减少Task节点数小于此处设置的最小实例数,则在首次执行时,集群会以最小节点数为准进行伸缩。

      例如,您设置弹性扩容规则为每天零点动态添加1个节点,最小节点数为3,则系统在第一天的零点时会添加3个节点,以满足最小节点数的要求。

      优雅下线 您可以设置超时时间,下线YARN上作业所在的Task节点。如果Task节点没有运行YARN上的作业或者作业运行超出您设置的超时时间,则下线Task节点。超时时间最大值为3600秒。
      说明 开启优雅下线时,请先将YARN配置项yarn.resourcemanager.nodes.exclude-path的值修改为/etc/ecm/hadoop-conf/yarn-exclude.xml
    2. 成本优化策略区域,选择成本优化模式。
      • 单一计费模式
        系统会根据您选择的vCPU和内存规格,自动匹配出满足条件的实例,并显示在实例规格区域。您需要选中实例规格区域的实例,以便集群按照已选的实例规格进行伸缩。单一计费模式支持以下两种计费类型:
        • 按量付费
          勾选实例的顺序决定显示节点的优先级,勾选实例后下方区域会显示每一个实例每小时的价格(包含EMR实例价格和ECS实例价格)。Pay as you go
        • 抢占式实例
          注意 当您的作业对SLA(Service Level Agreement)要求较高时,请慎用该实例。因为竞价失败等原因会导致抢占式实例被释放,所以请谨慎使用抢占式实例。
          勾选实例的顺序决定显示节点的优先级,每一个实例后会显示该实例在按量付费时每小时的价格。您还可以设置每台实例的上限价格,当满足规则时显示该类实例。抢占式实例详情,请参见:抢占式实例概述Preemptive instance
      • 成本优化模式
        该模式下,您可以制定更详细的成本控制策略,在成本和稳定性之间进行调整和权衡。成本优化模式
        参数 描述
        组内最小按量节点数量 弹性伸缩组需要的按量实例的最小个数,当伸缩组中按量实例个数小于该值时,将优先创建按量实例。
        按量节点所占比例 弹性伸缩组内最小按量节点数量满足之后,创建实例中按量实例所占的比例。
        最低价的多个实例规格 指定最低价的多个实例规格种类数。当创建抢占实例时,将在这些规格种类中进行均衡分布。最大值为3。
        抢占实例补偿 是否开启竞价实例的补偿机制。开启抢占实例补偿后,在竞价实例被回收前5分钟左右,将主动替换掉当前竞价实例。

        当您不指定组内最小按量节点数量按量节点所占比例最低价的多个实例规格参数时,您创建的是普通成本优化伸缩组。否则,您创建的是成本优化混合实例伸缩组。成本优化混合实例伸缩组与普通成本优化伸缩组在接口和功能方面是完全兼容的。

        对于成本优化混合实例伸缩组,您可以通过合理制定混合实例策略,以实现与普通成本优化伸缩组完全相同的行为。例如:
        • 普通成本优化伸缩组创建的全为按量实例

          指定组内最小按量节点数量=0,按量节点所占比例=100,最低价的多个实例规格=1。

        • 普通成本优化伸缩组优先创建竞价实例

          指定组内最小按量节点数量=0,按量节点所占比例=0,最低价的多个实例规格=1。

        说明 成本优化模式详情,请参见AutoScaling成本优化模式升级--混合实例策略
    3. 触发规则区域,选择规则的触发方式。
    4. 单击确定

开启弹性伸缩

弹性伸缩配置完成后,您可以在弹性伸缩配置页面,打开弹性伸缩状态开关,以开启弹性伸缩。Open elastic expansion
当弹性伸缩开启之后,如果您修改基础信息或触发规则,在保存配置后,需要在弹性伸缩配置页面,单击应用最新配置,使修改后的规则生效。Apply new configuration

关闭弹性伸缩

注意 当伸缩组内节点数为0时,您才可以关闭弹性伸缩。当伸缩组内节点不为0时 ,您需要先为伸缩组设置缩容规则或者修改最大实例数为0,直至伸缩组内节点全部缩容,才可以关闭弹性伸缩。

您可以在弹性伸缩配置页面,关闭弹性伸缩状态开关,以关闭弹性伸缩。

开启弹性伸缩功能后,当您需要更改实例配置或者当您的业务量需求趋于稳定时,您可以关闭弹性伸缩功能。