配置MRS集群弹性伸缩
应用场景
本入门指导以如下业务场景为例,介绍弹性伸缩规则与资源计划均叠加使用的操作:
某项实时处理业务数据量在周一、周二和周六7:00~13:00出现规律性变化,但是数据量变化并非非常平稳。假设在周一、周二和周六7:00~13:00期间,需要Task节点的数量范围是5~8个,其他时间需要Task节点数量是2~4个。
因此可以在资源计划的基础上,设置基于负载的弹性伸缩规则,以实现当数据量超出预期后,Task节点数量可以在资源计划规定的范围内根据负载情况进行浮动,但不会超出该规定范围。资源计划触发时,会以变化最小的方式使节点数量满足计划规定范围,即如果需要扩容则扩容到计划节点数量范围的下限,如果需要缩容则缩容到计划节点数量范围的上限。
约束与限制
在大数据应用,尤其是实时分析处理数据的场景中,常常需要根据数据量的变化动态调整集群节点数量以增减资源。MRS的弹性伸缩规则功能支持根据集群负载对集群进行弹性伸缩。
- 弹性伸缩规则:根据集群实时负载对Task节点数量进行调整,数据量变化后触发扩缩容,有一定的延后性。
- 资源计划(按时间段设置Task节点数量范围):若数据量变化存在周期性规律,则可通过资源计划在数据量变化前提前完成集群的扩缩容,避免出现增加或减少资源的延后。
弹性伸缩规则与资源计划均可触发弹性伸缩,两者至少配置其中一种,也可以叠加使用。
视频介绍
配置MRS集群弹性伸缩操作案例可参考配置MRS集群弹性伸缩操作视频,该视频以MRS 3.1.0版本集群为例,介绍如何在购买集群时配置弹性伸缩、如何为已有集群新增弹性伸缩策略。
因不同版本操作界面可能存在差异,相关视频供参考,具体以实际环境为准。
添加Task节点
MRS集群创建成功之后,如果需要规划Task类型的节点组进行弹性伸缩,可通过手动添加节点组的方式进行配置。
“自定义”类型集群添加Task节点操作步骤:
- 在集群详情页面,选择“节点管理”页签,单击“新增节点组”,进入“新增节点组”页面。
- 节点类型选择“Task”,“部署角色”参数默认选择“NM”部署NodeManager角色,则新增节点组为Task节点组,其他参数根据需要配置。
图1 添加Task节点组
- 在集群详情页面,选择“节点管理”页签,单击“配置Task节点”,进入“配置Task节点”页面。
- 配置“节点类型”、“节点规格”、“节点数量”、“系统盘”,如开启“添加数据盘”后,还需要配置数据盘的存储类型、大小和数量。
- 单击“确定”。
弹性伸缩规则与资源计划叠加使用
- 登录MRS管理控制台。
- 选择“现有集群”,单击待操作的集群名称,进入集群详情页面。
- 选择“弹性伸缩”页签,进入配置弹性伸缩界面。
- 单击“新增弹性伸缩”按钮,并配置“节点数量范围”为“2 - 4”。
图2 配置弹性伸缩
- 配置资源计划。
- 单击默认范围下方的“配置指定时间段的节点数量范围”。
- 配置“时间范围”和“节点数量范围”。
“时间范围”:“07:00-13:00”
“节点数量范围”:“5-8”
图3 弹性伸缩
- 配置弹性伸缩规则。
- 勾选“扩容”。
- 单击右侧“添加规则”,进入“添加规则”页面。
图4 添加规则
“规则名称”:default-expand-2
“如果”:在下拉框中选择规则对象及约束要求,例如YARNAppRunning大于75
“持续”:1个五分钟
“添加”:1个节点
“冷却时间”:20分钟
- 单击“确定”。
- 勾选“我同意授权MRS服务根据以上策略自动进行节点扩容/缩容操作。”。
- 单击“确定”,等待弹性伸缩集群设置完成。
参考信息
- 混合集群的支持分析集群和流式集群的所有指标。
- 表1该表中不同数值类型取值精度如下:
- 整型:整数。
- 百分比:0.01。
- 比率:0.01。
集群类型 |
指标名称 |
数值类型 |
说明 |
---|---|---|---|
流式集群 |
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]。 |
配置项 |
说明 |
---|---|
生效日期 |
资源计划的生效日期。默认是每日生效,也可以选择周一至周日任意一天或几天生效。 |
时间范围 |
资源计划的起始时间和结束时间,精确到分钟,取值范围[00:00, 23:59]。例如资源计划开始于早上8:00,结束于10:00,则配置为8:00-10:00。结束时间必须晚于开始时间至少30分钟。不同资源计划配置的时间段不可交叉。 |
节点数量范围 |
资源计划内的节点数量上下限,取值范围[0,500],在资源计划时间内,集群Task节点数量小于最小节点数时,弹性伸缩会将集群Task节点一次性扩容到最小节点数。在资源计划时间内,集群Task节点数量大于最大节点数时,弹性伸缩会将集群Task节点一次性缩容到最大节点数。最小节点数必须小于或等于最大节点数。 |