如果 Hadoop 集群计算量在一定的周期内存在明显的波峰、波谷,您可以设置在每天、每周或每月的固定时间段扩出一定量的 Task 节点来补充计算能力,这样在保证作业完成的同时,可以节省您的成本。

由于弹性伸缩节点均为按量付费的购买方式,并且按量付费和包年包月的同等计算能力价格大概在 3:1 左右,所以需要根据您的弹性伸缩时间来设计包年包月计算能力和按量付费计算能力的比例。例如业务波峰时间段每天持续 8 小时,包年包月和按量付费的价格大致相同,当大于 8 小时时,包年包月比弹性伸缩的购买方式更优惠。

配置伸缩实例数

  • 最大节点数:弹性伸缩的 Task 节点上限。一旦达到上限,即使满足弹性伸缩的规则,也不会继续进行弹性伸缩的动作。目前可设置的弹性伸缩最大上限为 1000。
  • 最小节点数:弹性伸缩的 Task 节点下限。如果弹性伸缩规则中设置的增加或减少 Task 节点数小于此处的最小节点数,那么在首次执行时,集群会以最小节点数为准进行伸缩。

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

配置伸缩规则

伸缩规则分为扩容规则和缩容规则。集群关闭弹性伸缩功能后,所有规则会被清空,再次开启弹性伸缩功能时,需要重新配置伸缩规则。

  • 规则名称:在同一个集群中,伸缩规则名称(包括扩容规则和缩容规则)不允许重复。
  • 规则执行周期:
    • 只执行一次:集群在指定的时间点执行一次弹性伸缩动作。
    • 重复执行:用户可以选择每天、每周或每月的某一特定时间点执行一次弹性伸缩动作。
  • 重试过期时间:弹性伸缩在到达指定时间时可能由于各种原因不能执行,通过设置重试过期时间,系统会在该时间范围内每隔 30 秒一直检测可以执行伸缩的时机,直到在满足条件时执行伸缩。设置范围为 0 到 21600 秒。

    假设在指定时间段需要进行弹性伸缩动作A,如果有其他弹性伸缩动作B或正处在冷却期,则动作 A 无法执行。在您设置的重试过期时间内,每隔 30 秒会重试一次,尝试执行 A,一旦条件满足,集群会立刻执行弹性伸缩。

  • 增加或减少 Task 节点数:规则被触发时,集群每次执行增加或减少的 Task 节点数量。
  • 冷却时间:每次弹性伸缩动作执行完成,到可以再次进行弹性伸缩的时间间隔。在冷却时间内,不会发生弹性伸缩动作。

配置伸缩规格

弹性伸缩配置可以指定伸缩的节点的硬件规格。用户只能在开启弹性伸缩功能时配置,保存后不能更改。如出于特殊情况确实需要修改,可以关闭弹性伸缩功能后,再次开启。

  • 选择 vCPU 和内存规格时,系统会根据您的选择自动匹配出满足条件的实例,显示在下面的备选实例列表中。您需要添加备选的实例到右侧列表中,以便集群按照已选的实例规格进行伸缩。
  • 为避免由于 ECS 库存不足造成的弹性伸缩失败,您最多可以选择 3 种 ECS 实例。
  • 无论是选择高效云盘还是 SSD 云盘,数据盘最小设置为 40 G。