一、自定义资源组概述
V3.10 版本中,Dataphin 全新上线调度资源分组管理的功能,能够帮助您统一管理部署Dataphin实例的物理机集群资源。您可以将资源划分为不同的配额组,不同资源组之间的资源配额互相独立,并支持为不同租户、统一租户下不同项目内的任务单独指定调度时使用的自定义资源组,从而保障核心任务的资源不被抢占,同时也提升整体资源利用率。
使用限制
当前仅支持独立部署环境,且基于最新架构部署的客户使用自定义资源组功能,部署详情请联系产品运维团队。
Dataphin 默认为您提供可管控用于调度的CPU资源量最多为72core,内存不做限制。如需增加可管控资源量,您可进行增购。实际可分配的资源总量请参见调度资源大盘。
应用场景
Dataphin 的自定义资源组功能可为您提供以下场景的支持:
核心任务保障:通过资源组管理可为核心任务分配单独的调度资源组,防止低优先级任务优先运行时抢占大量调度资源而导致高优任务一直在等待调度资源状态。例如,希望保证核心业务库的集成任务按时运行,那么可以给对应的集成任务配置“集成专用资源组”,其他非核心任务使用项目默认资源组。此外,您还可以配合使用智能运维的“限流”功能,控制低优先级任务的下发时间和并发数,为核心任务预留需要的计算资源;同时,智能运维的“基线运维”功能可以为您提供核心任务未按时产出和运行变慢的预警和告警,帮助您及时发现异常并处理。
按需分配 :支持按照租户、项目、任务粒度分配资源,可使不同业务部门所使用的资源解耦,从而现实各业务部门按需结算等应用场景。
生产开发隔离:支持为一对生产/开发项目指定不同的项目默认资源组,实现生产开发环境资源隔离。
临时批量运维操作:大批量补数据场景下,可能会占用较多的资源,从而影响周期任务的正常运行。支持在批量补数据等临时运维操作时指定单独的资源组,仅对本次运行生效,从而保障任务日常调度不受影响。例如,每月初都需要回刷上个月的订单数据以更新退款信息,可以创建一个“订单数据回刷专用资源组”,并在补数据时指定使用该资源组,从而保证周期实例的资源消耗不受补数据实例的影响。
二、名词解释
调度资源:调度资源指任务生成的实例调度所消耗的资源,支持将当前租户可使用的所有调度资源分配为不同的资源组并关联到可使用的项目,不同资源组之间资源相互隔离互不影响。
租户默认资源组:每个租户有且仅有一个,在创建租户时系统自动生成,不支持删除。创建自定义资源组时,自动从默认资源组分配对应资源。为了保证所有任务均有可使用的调度资源,需要设置租户默认资源组保留的最小资源百分比。
自定义资源组:在每个租户内,可以将该租户整体可使用的资源进一步划分为多个自定义资源组。自定义资源组可以设置使用场景,以便更好的管控资源使用范围。使用场景为任务日常调度的自定义资源组可用于即席查询、临时运行、周期调度等场景,需要配置可使用该资源组的关联项目;使用场景为批量运维操作的资源组可用于对生产任务执行补数据或重跑等操作时,临时指定单次调度使用的资源组。
资源组优先级:优先使用每个任务配置的资源组;如果任务在生成实例时指定的自定义资源组已被停用或删除,实例资源组将自动切换为所在项目的默认资源组;如果项目默认资源组状态也不可用,将继续自动切换为使用租户默认资源组。 此外,如果实例调度执行时指定的资源组已经被停用或删除,将自动切换为租户默认资源组执行。
三、功能简介
资源组管理
1) 租户默认资源组
每个租户有且仅有一个“租户默认资源组”,会在租户创建时默认生成。该资源组不可删除,将作为任务调度运行时的兜底资源组。为了保证资源利用率,租户默认资源组可使用的资源量初始值为 100%,将根据自定义资源组的配置情况自动调整,每新增一个自定义资源组,从租户默认资源组划分出对应的资源百分比。为了保障租户默认资源组的可用性,需要设置 CPU 和内存的最小保留值,只有当 租户默认资源的当前分配值 - 新增的自定义资源组的配置值>=最小保留值,自定义资源组才能创建成功。
2)自定义资源组
自定义资源组的配置包括:资源组名称、负责人、资源配置信息、描述、应用场景。资源组负责人可以管理资源组,包括修改配置信息、停用/启用/删除资源组。
应用场景设置为“任务日常调度”的资源组需要配置关联项目:只有和当前资源组有关联关系的项目下的任务可以使用该资源组,以便对资源组的可用范围进行管控。应用场景设置为“批量运维操作”的资源组可以在批量补数据等场景中使用。
项目默认资源组配置
项目管理员可以在项目配置中分别指定开发项目和生产项目下任务调度使用的默认资源组。注意,仅支持选择应用场景为“任务日常调度”并且和当前项目有关联关系的自定义资源组或租户默认资源组;如果指定为“租户默认资源组”,调度高峰期可能需要等待调度资源。
任务资源组配置及修改
1) 独享与共享资源任务类型
共享资源任务仅支持使用集群的共享调度资源池,不支持修改。独享资源任务可以指定任务粒度资源组。共享资源任务和和独享资源任务如下:
资源类型 |
任务类型 |
|
包括 |
不包括 |
|
共享资源任务 |
离线SQL与 Virtual计算任务; 逻辑表任务、PAI Designer。 |
Flink SQL任务; 基于开启了资源共享的离线代码模板创建的Shell、Python的任务。 |
独享资源任务 |
Shell、Python、Spark Jar、MR计算任务 |
基于未开启资源共享的离线代码模板创建的Shell、Python的任务。 |
2) 任务资源组配置说明
周期任务和手动任务均支持配置调度资源组。Basic模式项目下,即席查询、任务测试运行、周期调度均使用项目配置的调度资源组;Dev-Prod模式项目下,即席查询、任务测试运行及开发环境调度默认使用开发项目配置的项目默认资源组,不支持自定义修改;生产任务周期调度默认使用每个生产任务指定的资源组。特殊的,如果生产任务指定的自定义资源组为“项目默认资源组”,将根据项目配置的修改自动跟随变更。
3)修改生产任务的调度资源组
任务提交并发布后,仅支持在运维中心修改调度资源组。修改资源组需要有该项目下任务的“资源配置”权限。同样的,仅支持选择应用场景为“任务日常调度”并且和当前项目有关联关系的自定义资源组或租户默认资源组。此外,修改任务的调度资源组对已经生成的实例无效,仅对后续新生成的实例有效。如果由于紧急变更您需要修改已生成实例使用的调度资源组,可执行下述“修改实例的调度资源的”操作。
4)修改实例的调度资源组
如果实例的状态为“未运行”,支持修改实例的调度资源组;修改后,实例运行时将使用修改后的资源组。修改操作仅对当前实例生效,不影响实例所属任务生成的其他实例,适用于临时性的变更操作。
5) 资源组生效逻辑
满足运行条件后,实例将下发到资源调度系统并由调度系统编排后依次下发到计算引擎。下发到资源调度系统之前,会再次检查当前实例指定使用的资源组状态。如果指定的资源组已经被停用或删除,将依次切换为项目默认资源组或租户默认资源组。特殊的,资源调度系统将任务下发到计算引擎时也会检查指定资源组的状态,如果指定资源组不可用,将统一使用租户默认资源组兜底,以保证任务的稳定运行。
6) 批量运维操作配置
生产任务执行“补数据”或“重跑”等操作时,可临时指定单次调度使用的资源组,以满足临时性的资源消耗需求,同时也能保证周期任务的正常调度。
四、结语
是不是已经对自定义资源组功能充满期待了?接下来,我们会继续拓展自定义资源组的相关功能,进一步解放运维人员的配置成本并提升资源利用率。此外,Dataphin公共云版本也将在下半年推出自定义资源组功能,已支持跨 region 调度等场景,敬请期待!