Skip to main content

资源管理

概述

资源管理用于管理不同计算引擎上的资源队列,一个资源组就对应着一个队列,不同租户/项目/任务使用不同的资源组可实现资源隔离。

平台目前支持YARN和Trino两种资源组的配置。

  1. YARN资源组:YARN的队列机制通过其内置的调度器(如Capacity Scheduler和Fair Scheduler)来实现硬隔离。调度器会根据队列的配置和当前的资源使用情况,将资源容器(Containers)分配给不同的应用程序。确保了在多租户环境中,不同用户和应用程序的资源使用是严格分开的,避免了资源争抢导致的性能下降或不公平现象。
  • 每个队列都有最低和最高资源保障。最低保障确保队列在任何时候都能得到至少这么多资源,而最高保障则限制了队列可以使用的最大资源量。
  • YARN支持多级队列,允许创建子队列,以实现更细粒度的资源管理和分配。
  • YARN的资源分配策略在集群空闲和繁忙时表现出不同的行为。在集群空闲时,即资源充足、没有应用程序迫切需要更多资源的情况下,YARN倾向于尽可能地填充所有可用资源,而不是严格遵循队列的资源比例。当集群繁忙时,即多个应用程序同时运行且资源开始变得紧张,YARN会更严格地遵循队列的资源比例。每个队列将根据其配置的资源份额来分配资源,这通常是由管理员预先设定的百分比。例如,如果一个队列被配置为占总资源的50%,那么在资源紧张时,它将只能获得最多50%的资源,即使它的应用程序正在等待更多的资源。
  • YARN的某些调度器,如Capacity Scheduler,支持资源抢占和弹性。这意味着高优先级的队列或应用程序可以在资源紧张时抢占低优先级队列的资源,但这种抢占不会违反队列的最低资源保障。一旦资源紧张的情况缓解,低优先级队列将重新获得其应有的资源份额。
  1. Trino资源组:提供了软隔离机制,在Trino中,软隔离是基于资源组的分配和优先级机制来实现的。软隔离允许在资源充足时充分利用系统资源,而在资源紧张时通过优先级和份额机制来保障关键查询的性能。
  • 每个资源组可以设定CPU和内存的份额,但这些份额不是绝对的。在资源充足时,查询可能会超出其份额使用更多的资源。
  • 高优先级的查询可以在资源紧张时抢占低优先级查询的资源,但这不意味着低优先级查询会被完全阻止,只是它们的执行速度可能会变慢。
  • Trino的资源组配置可以动态调整,以适应不同的工作负载需求,这种灵活性有助于优化资源使用。
  • 虽然可以设定每个查询的资源使用上限,但这通常是一种指导性上限,而不是严格的限制。

功能介绍

点击「资源管理」,进入集群的「资源管理」界面。

「资源管理」界面中展示了所有资源组的详细情况。可以在其中看到各资源组已使用容量、分配容量、最大容量等信息。

已使用容量:计算方式:绑定队列已使用容量(Used Capacity)/该队列分配容量(Configured Capacity)。

分配容量:即Configured Capacity。

最大容量:即Configured Max Capacity。

img

新建资源组

平台目前支持YARN和Trino两种资源组的配置。

  1. YARN资源组配置

在集群配置的资源调度组件中添加YARN组件,并填写配置信息。YARN的资源组需要先在YARN组件上传的配置参数中划分好队列。

img

点击【新建资源组】按键,出现「新建资源组」弹窗。

填写「资源组名称」、「绑定资源队列」以及「描述」等信息。进行绑定资源队列的选择时会展示该队列的资源使用情况及被其他资源组绑定的情况。若没有可选队列,需要检查在YARN的配置文件里检查是否已经配置了队列。

YARN上的资源队列会自动生成一个同名的资源组,且一个资源组仅可对应一个资源队列。

img

  1. Trino资源组配置

配置Trino资源组需要先在集群配置的公共组件中开启Ldap+Ranger服务,并且在EasyManager平台上把资源组创建出来。

img

img

完成以上步骤后,进入资源管理后选到Trino资源组页面,可以查看Trino资源池中的内存、容量、CPU等信息。

img

编辑/删除资源组

在「资源组」的操作中,还可以进行【编辑】操作,对「资源组名称」、「资源队列」和「描述」进行修改。当资源组不存在授权项目时,资源组可删除。Trino资源组需要在EasyManager平台上进行删除或编辑。

tip

资源组是通过资源队列的名称与资源队列建立绑定关系。若资源队列改名后,资源组需重新绑定,否则跑在资源组上的所有任务将报错。

资源组授权项目/用户组

YARN资源组支持进行项目授权。

点击某一资源组对应的【授权资源组】按键,进入「资源组授权」页面,可以查看该资源组所有项目的授权情况。

img

租户与集群绑定后,若选中了某资源组作为默认资源组,则该资源组的授权项目会添加该租户的所有项目,该租户下当前及之后新建的所有项目都有该资源组的使用权限,租户切换默认资源组时,已授权项目不自动取消授权。

在「资源组授权」页面点击右上角【添加授权项目】可以添加授权项目,可以将资源组分配给某一具体项目。点击【添加授权项目】,出现如下所示弹窗,可选择当前集群下所有租户子产品的所有项目进行资源组的授权。

img

将资源组对某一项目进行【取消授权】操作,会对该项目的资源使用情况进行判断,流程图如下。

img

Trino资源组支持授权用户组。

点击某一资源组对应的【授权用户组】按键,进入「资源组授权」页面,可以查看该资源组所有用户组的授权情况。

img

点击【添加授权项目】,出现如下所示弹窗,可选择当前集群下所有租户下的非空用户组进行资源组的授权。

img