基础设置
基础设置限制自定义伸缩功能的扩缩容节点数范围,配置弹性资源类型,配置弹性伸缩是否支持优雅缩容;展示当前集群弹性节点资源数量,并支持一键释放弹性实例。
最小节点数:自动缩容策略触发时,集群最少保留弹性伸缩的 task 节点数。
最大节点数:自动扩容策略触发时,集群最多保留弹性伸缩的 task 节点数,单条或多条规格累计扩容数不能超过最大节点数。
全部释放:是指一键清除自动伸缩扩容出来的全部节点,非自动伸缩的节点不受影响。
释放竞价实例:是指仅一键清除自动伸缩扩容出来的竞价实例节点,非竞价实例资源节点不受影响。
释放按量计费实例:是指一键清除自动伸缩扩容出来的按量计费实例节点,非自动伸缩出的按量计费节点不受影响。
优雅缩容全局开关:默认关闭,所有缩容规则中优雅缩容策略不启用,优雅缩容全局开启后,所有缩容规则启用优雅缩容策略;单条缩容规则支持设置关闭优雅缩容策略。
资源类型:HOST 资源类型支持按量计费和竞价实例计费,POD 资源仅支持按量计费且 POD 资源仅可用于部署 Yarn 的 NodeManager 角色。
注意
当资源类型切换时对应伸缩规格及节点选择策略一起切换生效。
伸缩规格管理
伸缩规格是指通过自定义伸缩可以扩容的节点规格,每个集群最多可配置5种伸缩规格,扩容规则触发时将根据规格优先级进行扩容,当高优先级规格数量不足时,由次优先级资源规格混合高优先级规格进行扩容补充计算资源;为了保持集群负载的线性变化,建议尽量使伸缩规格的 CPU 和内存保持一致。
节点选择策略:支持“按量计费”和“竞价实例优先”两种策略。按量计费:扩容规则触发时,全部添加按量计费节点补充算力。
竞价实例优先:扩容规则触发时优先添加竞价实例补充算力。按量计费最小占比:保证单次扩容按量计费节点所占扩容数量的最小比例。
例如:
单次扩容10台节点,按量计费节点最小占比例为20%,则扩容规则触发时按量计费节点最少补充2台节点,剩余8台节点由竞价实例补充,当竞价实例资源不足8台节点时,由按量计费节点资源补充。
伸缩规格中的节点支持增、删、改、查,可按需调整伸缩规格优先级。
五种规格扩容顺序为(按量计费和竞价实例执行顺序相同):当资源充足时:1>2>3>4>5。
例如:
预设5种规格且资源充足,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容10台节点,其余预设规格不选择。
当资源不足时:1+2>1+2+3>1+2+3+4>1+2+3+4+5。
例如:
预设规格1有 8台节点,规格2有4台节点,规格3有3台节点,当扩容规则触发需要扩容13台节点时,按照顺序规格1扩容8台节点,规格2扩容4台,规格3扩容1台节点。
当资源规格无货时,假设规格2无货:1+3>1+3+4>1+3+4+5。
例如:
预设规格1有 8台节点,规格2没货没有节点,规格3有3台节点,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容8台节点,规格2不选,规格3扩容2台节点。
预设规格1有 8台节点,其余预设规格均无货,当扩容规则触发,需要扩容10台节点时,扩容规则将会触发,并扩容规格1扩容8台节点,扩容部分成功。
伸缩规则管理
伸缩规则是配置扩缩容动作触发条件以及变化节点数量的业务策略,支持按负载伸缩和时间伸缩两种伸缩策略(这两种策略只能二选一,不能同时使用)。策略切换时,原伸缩规则会保留,但处于失效状态,不会被触发执行。当前已扩容的节点也会保留,除非缩容规则触发,否则不会被缩容。每种策略最多可配置10条伸缩规则,当两条规则同时触发时,会先执行优先级较高的规则。
设置伸缩规则,需要在伸缩规则管理模块,选择自动伸缩类型为负载伸缩或时间伸缩,然后单击添加规则即可。
负载伸缩
无法准确的预估集群计算的波峰和波谷时,为确保重要作业按时完成,可使用按负载伸缩进行策略配置。负载主要基于预设 YARN 的指标统计规则,触发预设条件时自动调整 task 节点。
添加负载伸缩规则,需要选择自动伸缩类型为负载伸缩,然后单击添加规则,在“新建规则”页面,配置如下内容: 规则状态:规则状态用于标记规则是否开启,默认为开启状态,当不需要规则运行但仍想保留规则配置时可将规则状态设置为关闭。
规则名称:伸缩规则的名称,在一个集群中,伸缩规则名称不允许重复(包括扩容规则和缩容规则)。
有效时间:仅在有效时间内触发负载伸缩规则;默认时间范围选择不限制,支持自定义时间段按负载进行伸缩规则配置。
扩容服务:扩容组件默认继承集群维度配置,且扩容节点将归属该节点类型默认配置组。如需调整扩容组件配置,可通过指定配置设置。
Node Label:默认为空扩容资源后将放到 Default Label,设置后扩容的资源将放入指定的 Label。
负载指标:根据选定的集群负载指标设置触发阈值的条件规则,此处指 YARN 的负载指标。
|
AvailableVCores | root | AvailableVCores#root | Root 队列可用虚拟核数的数量 |
| root.default | AvailableVCores#root.default | root.default 队列可用虚拟核数的数量 |
| 自定义子队列 | 如:AvailableVCores#root.test | root.test 队列可用虚拟核数的数量 |
PendingVCores | root | PendingVCores#root | Root 队列等待可用的虚拟核数 |
| root.default | PendingVCores#root.default | root.default 队列等待可用的虚拟核数 |
| 自定义子队列 | 如:PendingVCores#root.test | root.test 队列等待可用的虚拟核数 |
AvailableMB | root | AvailableMB#root | Root 队列可用内存数量(MB) |
| root.default | AvailableMB#root.default | root.default 队列可用内存数量(MB) |
| 自定义子队列 | 如:AvailableMB#root.test | root.test 队列可用内存数量(MB) |
PendingMB | root | PendingMB#root | Root 队列等待可用的内存数量(MB) |
| root.default | PendingMB#root.default | root.default 队列等待可用的内存数量(MB) |
| 自定义子队列 | 如:PendingMB#root.test | root.test 队列等待可用的内存数量(MB) |
AvailableMemPercentage | 集群 | AvailableMemPercentage | 剩余内存的百分比 |
ContainerPendingRatio | 集群 | ContainerPendingRatio | 待分配的容器数与已分配的容器数的比率 |
AppsRunning | root | AppsRunning#root | Root 队列运行中的任务数 |
| root.default | AppsRunning#root.default | root.default 队列运行中的任务数 |
| 自定义子队列 | 如:AppsRunning#root.test | root.test 队列运行中的任务数 |
AppsPending | root | AppsPending#root | Root 队列挂起的任务数 |
| root.default | AppsPending#root.default | root.default 队列挂起的任务数 |
| 自定义子队列 | 如:AppsPending#root.test | root.test 队列挂起的任务数 |
PendingContainers | root | PendingContainers#root | Root 队列待分配的容器数 |
| root.default | PendingContainers#root.default | root.default 队列待分配的容器数 |
| 自定义子队列 | 如:PendingContainers#root.test | root.test 队列待分配的容器数 |
AllocatedMB | root | AllocatedMB#root | Root 队列已分配的内存量 |
| root.default | AllocatedMB#root.default | root.default 队列已分配的内存量 |
| 自定义子队列 | 如:AllocatedMB#root.test | root.test 队列已分配的内存量 |
AllocatedMB | root | AllocatedVCores#root | Root 队列已分配的虚拟核数 |
| root.default | AllocatedVCores#root.default | root.default 队列已分配的虚拟核数 |
| 自定义子队列 | 如:AllocatedVCores#root.test | root.test 队列已分配的虚拟核数 |
ReservedVCores | root | ReservedVCores#root | Root 队列预留的虚拟核数 |
| root.default | ReservedVCores#root.default | root.default 队列预留的虚拟核数 |
| 自定义子队列 | 如:ReservedVCores#root.test | root.test 队列预留的虚拟核数 |
AllocatedContainers | root | AllocatedContainers#root | Root 队列已分配的容器数 |
| root.default | AllocatedContainers#root.default | root.default 队列已分配的容器数 |
| 自定义子队列 | 如:AllocatedContainers#root.test | root.test 队列已分配的容器数 |
ReservedMB | root | ReservedMB#root | Root 队列预留的内存量 |
| root.default | ReservedMB#root.default | root.default 队列预留的内存量 |
| 自定义子队列 | 如:ReservedMB#root.test | root.test 队列预留的内存量 |
AppsKilled | root | AppsKilled#root | Root 队列终止的任务数 |
| root.default | AppsKilled#root.default | root.default 队列终止的任务数 |
| 自定义子队列 | 如:AppsKilled#root.test | root.test 队列终止的任务数 |
AppsFailed | root | AppsFailed#root | Root 队列失败的任务数 |
| root.default | AppsFailed#root.default | root.default 队列失败的任务数 |
| 自定义子队列 | 如:AppsFailed#root.test | root.test 队列失败的任务数 |
AppsCompleted | root | AppsCompleted#root | Root 队列完成的任务数 |
| root.default | AppsCompleted#root.default | root.default 队列完成的任务数 |
| 自定义子队列 | 如:AppsCompleted#root.test | root.test 队列完成的任务数 |
AppsSubmitted | root | AppsSubmitted#root | Root 队列提交的任务数 |
| root.default | AppsSubmitted#root.default | root.default 队列提交的任务数 |
| 自定义子队列 | 如:AppsSubmitted#root.test | root.test 队列提交的任务数 |
AvailableVCoresPercentage | 集群 | AvailableVCoresPercentage | 集群内可用虚拟核数百分比 |
MemPendingRatio | root | MemPendingRatio#root | Root 队列等待可用的内存百分比 |
| root.default | MemPendingRatio#root.default | root.default 队列等待可用的内存百分比 |
| 自定义子队列 | 如:MemPendingRatio#root.test | root.test 队列等待可用的内存百分比 |
统计规则:用户选定的集群负载指标在一个统计周期内,按照选定的聚合维度(平均值),达到触发阈值为一次触发。
统计周期:指标的统计时长,目前支持三个统计周期分别为:300秒、600秒、900秒。
重复次数:负载指标聚合后达到阈值触发的次数,达到该次数后触发集群弹性伸缩的动作。
扩容方式:支持选择:节点、内存、核数三种方式;三种方式仅支持整数非0值输入。
当方式选择核数和内存时,扩容保证最大算力进行扩容节点数量换算。
例如:
1. 按核数扩容,设置扩容10核,但规格按优先顺序扩容规格为8核时,规则触发将扩容2台8核节点。
2. 按内存扩容,设置扩容20G,但规格按优先顺序扩容规格为16G时,规则触发将扩容2台16G节点。
缩容方式:支持选择:节点、内存、核数三种方式;三种方式仅支持整数非0值输入。
当方式选择核数和内存时,缩容保证业务正常按最小台数进行缩容节点数量换算,按时间倒序缩容且保证最少一台缩容。
例如:
1. 按核数缩容,设置缩容20核,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容2台8核16G节点。
2. 按内存缩容,设置缩容30G,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容1台8核16G节点。
资源补足重试:自动扩容在高峰下单时可能由于资源争抢导致实际扩容机器数量达不到弹性目标数量,当您开启资源补足重试策略后,如果配置的伸缩规格资源充足,系统会自动重试申请资源,直到满足或接近目标数量。较常出现资源不足导致自动扩容不及预期可尝试打开此配置,开启后如果触发重试可能使自动扩容时间延长,请关注策略调整后对业务的影响。
冷却时间:当前规则执行成功后,再次启动执行下一次自动伸缩动作的间隔时间(冷却时间的范围0 - 43200秒)。
优雅缩容:开启优雅缩容模式后,如果缩容动作触发时节点正在执行任务,节点不会立即释放,而是在自定义时间内等待任务执行完成后进行缩容;若自定义时间结束时任务未执行完成也将进行缩容。
时间伸缩
集群计算量存在一定周期内的明显波峰和波谷,为确保重要作业按时完成,可以使用时间伸缩进行策略配置。时间伸缩策略可以设置在每天、每周或每月的固定时间段添加或减少 task 节点。
添加时间伸缩规则,需要选择自动伸缩类型为时间伸缩,然后单击添加规则,在“新建规则”页面,配置如下内容: 规则名称:伸缩规则的名称,在一个集群中,伸缩规则名称不允许重复(包括扩容规则和缩容规则)。
扩容服务:扩容组件默认继承集群维度配置,且扩容节点将归属该节点类型默认配置组。如需调整扩容组件配置,可通过指定配置设置。
执行一次:指特定的时间进行触发伸缩动作,精确到分钟。
重复执行:指设定每个时间段或特定的时间触发伸缩动作,分别支持“每日”、“每周”、“每月”。
过期重试时间:弹性伸缩在到达指定时间时可能由于各种原因不能执行,通过设置重试过期时间,系统会在该时间范围内每隔 一段时间尝试执行一次,直到在满足条件时执行伸缩。
规则有效期:在时间伸缩规则中,单条规则触发最长有效期。
扩容方式:支持选择节点、内存、核数三种方式;三种方式仅支持整数非0值输入
当方式选择核数和内存时,扩容保证最大算力进行扩容节点数量换算。
例如:
1. 按核数扩容,设置扩容10核,但规格按优先顺序扩容规格为8核时,规则触发将扩容2台8核节点。
2. 按内存扩容,设置扩容20G,但规格按优先顺序扩容规格为16G时,规则触发将扩容2台16G节点。
缩容方式:支持选择节点、内存、核数三种方式;三种方式仅支持整数非0值输入。
当方式选择核数和内存时,缩容保证业务正常按最小台数进行缩容节点数量换算,按时间倒序缩容且保证最少一台缩容。
例如:
1. 按核数缩容,设置缩容20核,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容2台8核16G节点。
2. 按内存缩容,设置缩容30G,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容1台8核16G节点。
资源补足重试:自动扩容在高峰下单时可能由于资源争抢导致实际扩容机器数量达不到弹性目标数量,当您开启资源补足重试策略后,如果配置的伸缩规格资源充足,系统会自动重试申请资源,直到满足或接近目标数量。较常出现资源不足导致自动扩容不及预期可尝试打开此配置,开启后如果触发重试可能使自动扩容时间延长,请关注策略调整后对业务的影响。
冷却时间:当前规则执行成功后,再次启动执行下一次自动伸缩动作的间隔时间(冷却时间的范围0 - 43200秒)。
定时销毁:指定扩容资源使用时长,且缩容规则触发时当前批次节点不受缩容规则影响;默认选择“不限制”,支持自定义销毁时长,输入数值且为整数,输入值范围(1-24)小时。
使用场景说明:
固定时段需要补充算力且维持算力时间在一天范围内,并且其他缩容规则不影响此批资源时使用。
规则状态:规则状态用于标记规则是否开启,默认为开启状态,当不需要规则运行但仍想保留规则配置时可将规则状态设置为关闭。
优雅缩容:开启优雅缩容模式后,如果缩容动作触发时节点正在执行任务,节点不会立即释放,而是在自定义时间内等待任务执行完成后进行缩容;若自定义时间结束时任务未执行完成也将进行缩容。
本页内容是否解决了您的问题?