弹性资源池
弹性资源池为DLI作业运行提供所需的计算资源(CPU和内存)。弹性资源池的单位为CU,1CU包含1CPU和4GB内存。
您可以在弹性资源池中创建多个队列, 队列之间的计算资源支持共享。 通过合理设置队列的计算资源池分配策略,提高计算资源利用率。
约束与限制
- 弹性资源池不支持切换区域。
- Flink 1.10及其以上版本的作业支持在弹性资源池运行。
- 弹性资源池网段设置后不支持更改。
- 弹性资源池关联队列:
−队列和弹性资源池状态正常,资源未被冻结。
- 仅支持查看30天以内的弹性资源池扩缩容历史。
- 弹性资源池不支持访问公网。
使用场景
场景一:固定资源造成资源浪费和资源不足的场景
在每天的不同时段,作业任务对资源的请求量也会发生变化,如果采用固定资源规格则会导致资源浪费或者资源不足的问题。例如,如下图示例“固定资源场景”可以看出:
- 大约在凌晨4点到7点这个数据段,ETL作业任务结束后没有其他作业,因为资源固定一直占用,导致严重的资源浪费。
- 上午9点到12点以及下午14点16点的两个时段,ETL报表和作业查询的请求量很高,因为当前固定资源不够,导致作业任务排队,任务一直排队。
固定资源场景
场景二:资源相互隔离,没有共享,造成资源浪费的场景
某公司下有两个部门,两个部门的不同作业运行在DLI的两个队列上。部门A在上午8点到12点业务比较空闲,资源有剩余,部门B在这个时间段业务请求量大,原有资源规格满足不了,需要扩容时,请求不了部门A的队列资源,造成资源浪费。
资源隔离造成的资源浪费
弹性资源池通过“分时按需弹性”功能,支持按照不同时间段对资源进行动态的扩缩容,保证资源的利用率和应对资源洪峰等诉求。
弹性资源池对后端资源统一进行管理和调度,多个队列绑定弹性资源池后,资源池内资源共享,资源利用率高,解决了场景二的问题。
弹性资源池架构和优势
弹性资源池后端采用CCE集群的架构,支持异构,对资源进行统一的管理和调度。
弹性资源池的优势主要体现在以下几个方面:
- 统一资源管理
−统一管理内部多集群和调度作业,规模可以到百万核级别。
−多AZ部署,支持跨AZ高可用。(暂未实现,后续版本支持)
- 租户资源隔离
不同队列之间资源隔离,减少队列之间的相互影响。
- 分时按需弹性
−秒级动态扩容,从容应对流量洪峰和资源诉求。
−支持分时设置队列优先级和配额,提高资源利用率。
- 作业级资源隔离(暂未实现,后续版本支持)
支持独立Spark实例运行SQL作业,减少作业间相互影响。
- 自动弹性(暂未实现,后续版本支持)
基于队列负载和优先级实时自动更新队列配额。
弹性资源池解决方案主要解决了以下问题和挑战。
维度 原有队列,无弹性资源池时 弹性资源池 扩容时长 手工扩容时间长,扩容时长在分钟级别
不需要手工干预,秒级动态扩容。
资源利用率
不同队列之间资源不能共享。
例如:队列1当前还剩余10CU资源,队列2当前负载高需要扩容时,队列2不能使用队列1中的资源,只能单独对队列1进行扩容。
添加到同一个弹性资源池的多个队列,CU资源可以共享,达到资源的合理利用。
配置跨源时,必须为每个队列分配不重合的网段,占用大量VPC网段。
多队列通过弹性资源池统一进行网段划分,减少跨源配置的复杂度。
资源调配
多个队列同时扩容时不能设置优先级,在资源不够时,会导致部分队列扩容申请失败。
您可以根据当前业务波峰和波谷时间段,设置各队列在弹性资源池中的优先级,保证资源的合理调配。
弹性资源池主要包括如下基本操作: