更新时间:2024-08-03 GMT+08:00

配置MRS集群弹性伸缩

在大数据应用,尤其是实时分析处理数据的场景中,常常需要根据数据量的变化动态调整集群节点数量以增减资源。MRS的弹性伸缩规则功能支持根据集群负载对集群进行弹性伸缩。

  • 弹性伸缩规则:根据集群实时负载对Task节点数量进行调整,数据量变化后触发扩缩容,有一定的延后性。
  • 资源计划(按时间段设置Task节点数量范围):若数据量变化存在周期性规律,则可通过资源计划在数据量变化前提前完成集群的扩缩容,避免出现增加或减少资源的延后。

弹性伸缩规则与资源计划均可触发弹性伸缩,两者至少配置其中一种,也可以叠加使用。

操作场景

本入门指导以如下业务场景为例,介绍弹性伸缩规则与资源计划均叠加使用的操作:

某项实时处理业务数据量在周一、周二和周六7:00~13:00出现规律性变化,但是数据量变化并非非常平稳。假设在周一、周二和周六7:00~13:00期间,需要Task节点的数量范围是5~8个,其他时间需要Task节点数量是2~4个。

因此可以在资源计划的基础上,设置基于负载的弹性伸缩规则,以实现当数据量超出预期后,Task节点数量可以在资源计划规定的范围内根据负载情况进行浮动,但不会超出该规定范围。资源计划触发时,会以变化最小的方式使节点数量满足计划规定范围,即如果需要扩容则扩容到计划节点数量范围的下限,如果需要缩容则缩容到计划节点数量范围的上限。

视频介绍

配置MRS集群弹性伸缩操作案例可参考配置MRS集群弹性伸缩操作视频,该视频以MRS 3.1.0版本集群为例,介绍如何在购买集群时配置弹性伸缩、如何为已有集群新增弹性伸缩策略。

因不同版本操作界面可能存在差异,相关视频供参考,具体以实际环境为准。

添加Task节点

MRS集群创建成功之后,如果需要规划Task类型的节点组进行弹性伸缩,可通过手动添加节点组的方式进行配置。

“自定义”类型集群添加Task节点操作步骤:

  1. 在集群详情页面,选择“节点管理”页签,单击“新增节点组”,进入“新增节点组”页面。
  2. 节点类型选择“Task”,“部署角色”参数默认选择“NM”部署NodeManager角色,则新增节点组为Task节点组,其他参数根据需要配置。
    图1 添加Task节点组
非“自定义”类型集群添加Task节点操作步骤:
  1. 在集群详情页面,选择“节点管理”页签,单击“配置Task节点”,进入“配置Task节点”页面。
  2. 配置“节点类型”“节点规格”“节点数量”“系统盘”,如开启“添加数据盘”后,还需要配置数据盘的存储类型、大小和数量。

  3. 单击“确定”

弹性伸缩规则与资源计划叠加使用

  1. 登录MRS管理控制台。
  2. 选择“现有集群”,单击待操作的集群名称,进入集群详情页面。
  3. 选择“弹性伸缩”页签,进入配置弹性伸缩界面。
  4. 单击“新增弹性伸缩”按钮,并配置“节点数量范围”为“2 - 4”。

    图2 配置弹性伸缩

  5. 配置资源计划。

    1. 单击默认范围下方的“配置指定时间段的节点数量范围”
    2. 配置“时间范围”“节点数量范围”

      “时间范围”“07:00-13:00”

      “节点数量范围”“5-8”

      图3 弹性伸缩

  6. 配置弹性伸缩规则。

    1. 勾选“扩容”
    2. 单击右侧“添加规则”,进入“添加规则”页面。
      图4 添加规则

      “规则名称”:default-expand-2

      “如果”:在下拉框中选择规则对象及约束要求,例如YARNAppRunning大于75

      “持续”:1个五分钟

      “添加”:1个节点

      “冷却时间”:20分钟

    3. 单击“确定”

  7. 勾选“我同意授权MRS服务根据以上策略自动进行节点扩容/缩容操作。”
  8. 单击“确定”,等待弹性伸缩集群设置完成。

参考信息

在添加规则时,可以参考表1配置相应的指标。
  • 混合集群的支持分析集群和流式集群的所有指标。
  • 表1该表中不同数值类型取值精度如下:
    • 整型:整数。
    • 百分比:0.01。
    • 比率:0.01。
表1 弹性伸缩指标列表

集群类型

指标名称

数值类型

说明

流式集群

StormSlotAvailable

整型

Storm组件的可用slot数。

取值范围为[0~2147483646]。

StormSlotAvailablePercentage

百分比

Storm组件可用slot百分比。是可用slot数与总slot数的比值。

取值范围为[0~100]。

StormSlotUsed

整型

Storm组件的已用slot数。

取值范围为[0~2147483646]。

StormSlotUsedPercentage

百分比

Storm组件已用slot百分比。是已用slot数与总slot数的比值。

取值范围为[0~100]。

StormSupervisorMemAverageUsage

整型

Storm组件Supervisor的内存平均使用量。

取值范围为[0~2147483646]。

StormSupervisorMemAverageUsagePercentage

百分比

Storm组件Supervisor进程使用的内存占系统总内存的平均百分比。

取值范围[0 ~ 100]。

StormSupervisorCPUAverageUsagePercentage

百分比

Storm组件Supervisor进程使用的CPU占系统总CPU的平均百分比。

取值范围[0 ~ 6000]。

分析集群

YARNAppPending

整型

YARN组件挂起的任务数。

取值范围为[0~2147483646]。

YARNAppPendingRatio

比率

YARN组件挂起的任务数比例。是YARN挂起的任务数与YARN运行中的任务数比值。

取值范围为[0~2147483646]。

YARNAppRunning

整型

YARN组件运行中的任务数。

取值范围为[0~2147483646]。

YARNContainerAllocated

整型

YARN组件中已分配的container个数。

取值范围为[0~2147483646]。

YARNContainerPending

整型

YARN组件挂起的container个数。

取值范围为[0~2147483646]。

YARNContainerPendingRatio

比率

YARN组件挂起的container比率。是挂起的container数与运行中的container数的比值。

取值范围为[0~2147483646]。

YARNCPUAllocated

整型

YARN组件已分配的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNCPUAvailable

整型

YARN组件可用的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNCPUAvailablePercentage

百分比

YARN组件可用虚拟CPU核心数百分比。是可用虚拟CPU核心数与总虚拟CPU核心数比值。

取值范围为[0~100]。

YARNCPUPending

整型

YARN组件挂起的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNMemoryAllocated

整型

YARN组件已分配内存大小。单位为MB。

取值范围为[0~2147483646]。

YARNMemoryAvailable

整型

YARN组件可用内存大小。单位为MB。

取值范围为[0~2147483646]。

YARNMemoryAvailablePercentage

百分比

YARN组件可用内存百分比。是YARN组件可用内存大小与YARN组件总内存大小的比值。

取值范围为[0~100]。

YARNMemoryPending

整型

YARN组件挂起的内存大小。

取值范围为[0~2147483646]。

在添加资源计划时,可以参考表2配置相应的参数。
表2 资源计划配置项说明

配置项

说明

生效日期

资源计划的生效日期。默认是每日生效,也可以选择周一至周日任意一天或几天生效。

时间范围

资源计划的起始时间和结束时间,精确到分钟,取值范围[00:00, 23:59]。例如资源计划开始于早上8:00,结束于10:00,则配置为8:00-10:00。结束时间必须晚于开始时间至少30分钟。不同资源计划配置的时间段不可交叉。

节点数量范围

资源计划内的节点数量上下限,取值范围[0,500],在资源计划时间内,集群Task节点数量小于最小节点数时,弹性伸缩会将集群Task节点一次性扩容到最小节点数。在资源计划时间内,集群Task节点数量大于最大节点数时,弹性伸缩会将集群Task节点一次性缩容到最大节点数。最小节点数必须小于或等于最大节点数。