配置弹性伸缩规则
功能介绍
对弹性伸缩规则进行编辑。
在创建集群并执行作业接口中也可以创建弹性伸缩规则。
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]。  | 
     
响应消息
| 
        参数名  | 
      
        参数类型  | 
      
        说明  | 
     
|---|---|---|
| 
        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" } 
    
      