配置弹性伸缩规则
功能介绍
对弹性伸缩规则进行编辑。
在创建集群并执行作业接口中也可以创建弹性伸缩规则。
URI
- URI格式
- 参数说明
表1 URI参数说明 名称
是否必选
说明
project_id
是
项目编号。获取方法,请参见获取项目ID。
cluster_id
是
集群编号。
请求消息
请求参数
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
node_group |
是 |
String |
弹性伸缩规则适用的节点类型,当前只支持task节点,即请求的值为:task_node_default_group |
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
auto_scaling_enable |
是 |
Boolean |
当前自动伸缩规则是否开启。 |
min_capacity |
是 |
Integer |
指定该节点组的最小保留节点数。 取值范围:[0~500] |
max_capacity |
是 |
Integer |
指定该节点组的最大节点数。 取值范围:[0~500] |
resources_plans |
否 |
List |
资源计划列表,详细说明请参见表4。若该参数为空表示不启用资源计划。 当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。 |
exec_scripts |
否 |
List |
弹性伸缩自定义自动化脚本列表。详细说明请参见表5。若该参数为空表示不启用钩子脚本。 |
rules |
否 |
List |
自动伸缩的规则列表,详细说明请参见表6。 当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。 |
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
period_type |
是 |
String |
资源计划的周期类型,当前只允许以下类型:
|
start_time |
是 |
String |
资源计划的起始时间,格式为“hour:minute”,表示时间在0:00-23:59之间。 |
end_time |
是 |
String |
资源计划的结束时间,格式与“start_time”相同,不早于start_time表示的时间,且与start_time间隔不小于30min。 |
min_capacity |
是 |
Integer |
资源计划内该节点组的最小保留节点数。 取值范围:[0~500] |
max_capacity |
是 |
Integer |
资源计划内该节点组的最大保留节点数。 取值范围:[0~500] |
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
name |
是 |
String |
弹性伸缩自定义自动化脚本的名称,同一个集群的自定义自动化脚本名称不允许相同。 只能由数字、英文字符、空格、中划线和下划线组成,且不能以空格开头。 可输入的字符串长度为1~64个字符。 |
uri |
是 |
String |
自定义自动化脚本的路径。设置为OBS桶的路径或虚拟机本地的路径。
|
parameters |
否 |
String |
自定义自动化脚本参数。
|
nodes |
是 |
List<String> |
自定义自动化脚本所执行的节点类型,包含Master、Core和Task三种类型。 |
active_master |
否 |
Boolean |
自定义自动化脚本是否只运行在主Master节点上。 缺省值为false,表示自定义自动化脚本可运行在所有Master节点上。 |
action_stage |
是 |
String |
脚本执行时机。 支持以下四个阶段:
|
fail_action |
是 |
String |
自定义自动化脚本执行失败后,是否继续执行后续脚本和创建集群。
|
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
name |
是 |
String |
弹性伸缩规则的名称。 只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。 在一个节点组范围内,不允许重名。 |
description |
否 |
String |
弹性伸缩规则的说明。 最大长度为1024字符。 |
adjustment_type |
是 |
String |
弹性伸缩规则的调整类型,只允许以下类型:
|
cool_down_minutes |
是 |
Integer |
触发弹性伸缩规则后,该集群处于冷却状态(不再执行弹性伸缩操作)的时长,单位为分钟。 取值范围[0~10080],10080为一周的分钟数。 |
scaling_adjustment |
是 |
Integer |
单次调整集群节点的个数。 取值范围[1~100] |
trigger |
是 |
Trigger |
描述该规则触发条件,详细说明请参见表7。 |
参数名 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
metric_name |
是 |
String |
指标名称。 该触发条件会依据该名称对应指标的值来进行判断。 最大长度为64个字符。 支持的指标名称请参考表8。 |
metric_value |
是 |
String |
指标阈值。 触发该条件的指标阈值,只允许输入整数或者带两位小数的数,metric_name对应的指标数值类型和有效取值范围,请参考表8。 |
comparison_operator |
否 |
String |
指标判断逻辑运算符,包括:
|
evaluation_periods |
是 |
Integer |
判断连续满足指标阈值的周期数(一个周期为5分钟)。 取值范围[1~288] |
集群类型 |
指标名称 |
数值类型 |
说明 |
---|---|---|---|
流式集群 |
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]。 |
表8中指标数值类型为百分比或比率时,有效数值可精确到百分位。其中百分比类型指标数值为去除百分号(%)后的小数值,如16.80即代表16.80%。
响应消息
参数名 |
参数类型 |
说明 |
---|---|---|
result |
String |
操作结果。
|
示例
- 请求示例
{ "node_group":"task_node_default_group", "auto_scaling_policy": { "auto_scaling_enable": true, "min_capacity": "1", "max_capacity": "3", "resources_plans": [{ "period_type": "daily", "start_time": "9:50", "end_time": "10:20", "min_capacity": "2", "max_capacity": "3" },{ "period_type": "daily", "start_time": "10:20", "end_time": "12:30", "min_capacity": "0", "max_capacity": "2" }], "exec_scripts": [{ "name": "before_scale_out", "uri": "s3a://XXX/zeppelin_install.sh", "parameters": "", "nodes": [ "master", "core", "task" ], "active_master": "true", "action_stage": "before_scale_out", "fail_action": "continue" },{ "name": "after_scale_out", "uri": "s3a://XXX/storm_rebalance.sh", "parameters": "", "nodes": [ "master", "core", "task" ], "active_master": "true", "action_stage": "after_scale_out", "fail_action": "continue" }], "rules": [{ "name": "default-expand-1", "adjustment_type": "scale_out", "cool_down_minutes": 5, "scaling_adjustment": 1, "trigger": { "metric_name": "YARNMemoryAvailablePercentage", "metric_value": "25", "comparison_operator": "LT", "evaluation_periods": 10 } }, { "name": "default-shrink-1", "adjustment_type": "scale_in", "cool_down_minutes": 5, "scaling_adjustment": 1, "trigger": { "metric_name": "YARNMemoryAvailablePercentage", "metric_value": "70", "comparison_operator": "GT", "evaluation_periods": 10 } }] } }
新的弹性伸缩规则将会覆盖原数据库中保存的弹性伸缩规则。如果想对原规则进行修改,可以参考查询集群详情,先查询出原规则,在原规则基础上进行修改后再提交修改。
- 响应示例
{ "result": "succeeded" }