新建、修改、删除资源组
云原生数据仓库 AnalyticDB MySQL 版资源组可以实现离线批处理与交互式查询的计算资源隔离,支持资源的定时或自动弹性,允许控制查询的优先级等。本文介绍如何新建资源组,以及资源组的管理操作。
前提条件
集群的产品系列为企业版、基础版或湖仓版。
计费说明
Interactive型资源组和Job型资源组使用的弹性资源,会产生ACU弹性资源费用。
在集群管理>资源管理>资源总览页面,可以查看所有资源组使用的总资源和预留资源。总资源和预留资源的差值为弹性资源用量。
新建资源组
每个集群都有一个默认资源组user_default。在没有其他资源组的情况下,所有查询都由默认资源组执行。如果有查询的资源隔离需求,您需要新建资源组。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击集群管理>资源管理,单击资源组管理页签。然后在资源组列表的右上角,单击新增资源组。
为资源组命名,并选择任务类型。
高QPS低RT的在线场景,请选择Interactive。
Interactive型资源组使用常驻的计算资源,以MPP方式执行查询,响应时间较快,通常在毫秒级。
高吞吐离线场景,请选择Job。
Job型资源组会拉起临时计算资源,并以BSP方式执行查询,响应时间较慢,通常在秒级或分钟级。拉起的临时计算资源量在0 ACU和Job型资源组最大资源之间,具体资源量大小取决于所运行的任务大小。
重要资源组创建成功后,不能修改任务类型。
选择的任务类型不同,需要设置的属性也不同。设置属性后,单击确定。
Interactive型资源组属性
参数名称
说明
引擎
XIHE引擎:该资源组仅支持执行XIHE SQL。
Spark引擎:该资源组仅支持执行Spark SQL作业,且Spark SQL作业会以交互式方式进行处理。
重要资源组创建成功后,不能修改引擎。
自动停止
当Interactive型资源组的闲置状态到达指定时长后,即执行完最后一条命令并闲置几分钟后,资源组已启用的Cluster将自动释放。
开启自动停止,可减少资源浪费,节省资源成本。但再次执行查询时,需要重新拉起资源,会有一定延迟。
重要仅引擎选择为Spark时支持该参数。
Cluster大小
单个Cluster的大小,即ACU数,可任意填写,最小为16 ACU。
最小Cluster个数
最大Cluster个数
最小Cluster个数:资源组内至少需要运行的Cluster个数,最小为1。
最大Cluster个数:Cluster个数可以扩容到的最大值,最大为10。
最小Cluster个数和最大Cluster个数不同时,AnalyticDB for MySQL会根据资源组的查询负载在最小Cluster个数和最大Cluster个数之间动态地扩缩容Cluster个数。
最小Cluster个数和最大Cluster个数相同时,AnalyticDB for MySQL在资源组创建成功后就会启动指定的Cluster个数,有效地静态控制资源组的计算资源总量。
说明最小Cluster个数或最大Cluster个数大于等于2时,则表示该资源组开启Multi-Cluster功能。Multi-Cluster功能详情,请参见Multi-Cluster弹性模型。
作业投递规则
将超过查询执行时间阈值的查询投递到目标资源组执行。详情请参见作业投递。
重要仅引擎选择为XIHE时支持该参数。
Spark 配置
Spark应用配置参数,应用于该资源组执行的所有Spark作业。如需为某个Spark作业单独配置参数,可以在提交作业时通过代码设置。
Spark配置参数详情,请参见Spark应用配置参数说明。
重要仅引擎选择为Spark时支持该参数。
Job型资源组属性
参数名称
说明
计算最小资源
最小取值为0 ACU。
重要资源组创建成功后,不支持修改计算最小资源。
计算最大资源
控制台可设置的计算最大资源为1024 ACU,步长为8 ACU。若您有需求,可提交工单联系技术支持调大资源。
竞价实例
是否开启竞价实例。
开启竞价实例后,运行在Job型资源组上的Spark作业会尝试使用竞价实例资源。更多信息,请参见竞价实例。
Spark 配置
Spark应用配置参数,应用于该资源组执行的所有Spark作业。如需为某个Spark作业单独配置参数,可以在提交作业时通过代码设置。
Spark配置参数详情,请参见Spark应用配置参数说明。
修改资源组
哪些属性支持修改
自定义资源组(即自己新建的资源组)支持修改以下属性:
Interactive型资源组的自动停止、Cluster大小、最小Cluster个数、最大Cluster个数、作业投递规则和Spark配置。
Job型资源组的计算最大资源、竞价实例和Spark配置。
其他属性,包括资源组名称、任务类型、Interactive型资源组的引擎、Job型资源组的计算最小资源,均不支持修改。
默认资源组(即名称为user_default的资源组):
湖仓版的默认资源组,支持修改计算预留资源和作业投递规则。
企业版和基础版的默认资源组,不支持任何修改。
操作步骤
在资源组管理页面,单击目标资源组操作列中的修改。
在弹出的修改资源组面板中,修改属性值。然后单击确定。
当资源组状态变为“运行中”时,修改生效。
删除资源组
自定义资源组(即自己新建的资源组)可以删除。默认资源组(user_default资源组)不支持删除。
删除资源组的影响
如果有正在运行的任务,删除资源组将导致资源组中运行的任务中断。
如果在XIHE SQL脚本或Spark作业中指定了某资源组,请在删除该资源组后修改XIHE SQL脚本或Spark作业中指定的资源组,否则XIHE SQL作业将由默认资源组执行,Spark作业将报错。
操作步骤
在资源组管理页面,单击目标资源组操作列中的删除。在弹窗中单击确定,即可删除资源组。
监控资源用量
您可以查看集群级别的资源用量,资源组级别的资源和负载,以及作业级别的资源消耗。
查询集群的预留和弹性资源
在集群管理>资源管理>资源总览页面,查看集群所有资源组在某个时间点的总资源和预留资源。总资源和预留资源的差值为弹性资源用量。
查询单个资源组的资源和负载
您可以查看单个资源组实际占用的计算资源。您也可以根据以下指标了解资源组的负载情况:运行中和排队中的XIHE SQL数量、Spark引擎个数和连接数。
在集群管理>资源管理>资源组管理页面,找到目标资源组,单击监控,查看单个资源组实际使用的计算资源。
查询单个作业消耗的资源
作业使用统计提供了以下作业的资源消耗统计:XIHE BSP作业、Spark作业、AnalyticDB for MySQL控制台的SLS/Kafka数据同步和数据迁移任务。
您可以在集群管理>资源管理>作业使用统计页面,查看作业消耗的总资源、预留资源、弹性资源、竞价实例资源。
绑定或解绑数据库账号
如果您希望不同数据库账号发起的查询能够实现资源隔离,您可以将数据库账号绑定到资源组。数据库账号绑定资源组后,如果该账号发起的SQL查询没有显式指定资源组,则会根据绑定关系路由至对应的资源组执行。
绑定规则
一个账号只能绑定一个资源组。一个资源组可以被多个账号绑定。
一个账号没有与任何自定义资源组绑定的时候,该账号与默认资源组绑定。
默认资源组user_default不支持绑定用户。
删除资源组或数据库账号时,会同时解绑数据库账号与资源组的绑定关系。
使用方法
通过控制台绑定或解绑数据库账号
在集群管理>资源管理>资源组管理页面,找到指定资源组,然后在操作列中单击绑定用户。
在用户名下拉列表中选择数据库账号,单击绑定用户,并在弹出的确认绑定用户对话框中单击确定。
单次只能绑定一个数据库账号。如需绑定多个账号,请重复步骤2。
如果下拉列表为空,说明您还没有创建数据库账号,请先创建账号,具体步骤请参见创建数据库账号。
如果需要解绑数据库账号,在绑定用户列表中,找到目标用户,单击解除绑定,然后在弹出的对话框中单击确定。
通过OpenAPI绑定或解绑数据库账号
启动或停止ThriftServer(不推荐)
推荐您将Spark SQL作业投递到Spark引擎类型的Interactive型资源组,实现Spark SQL的交互式查询。创建Spark类型的Interactive型资源组,请参见新建资源组。投递Spark SQL作业到Interactive型资源组,请参见如何使用指定资源组的资源执行查询。
AnalyticDB for MySQL企业版、基础版或湖仓版Job型资源组默认使用批处理方式执行Spark SQL。如果您想要使用Job型资源组执行交互式查询,则需要启动ThriftServer。启动ThriftServer后,同一资源组内可以并发执行多个交互式查询,提升查询效率。
启动ThriftServer
每个Job型资源组只能启动一个ThriftServer。
已启动ThriftServer的Job型资源组,在执行Spark SQL作业时,都会采用交互式执行。
在集群管理>资源管理>资源组管理页面,找到目标Job型资源组,然后在操作列中单击ThriftServer配置。
在ThriftServer配置页面,填写参数配置。然后单击启动。
参数名称
是否必填
说明
对应的配置参数
Min Executor个数
是
Spark弹性配置下的最小Executor数量,默认值为0,表示不执行Spark SQL时会释放所有的Executor。一个Executor的资源量为2 ACU。
spark.dynamicAllocation.minExecutors
Max Executor个数
是
Spark弹性配置下最大的Executor数量,表示执行Spark SQL时最大拉起的Executor数量,至少配置为1。一个Executor的资源量为2 ACU。
请勿超过该Job型资源组的计算最大资源,否则可能报错。例如某Job型资源组的计算最大资源为16 ACU,那么可配置的最大Executor数量为8。
spark.dynamicAllocation.maxExecutors
JARS
否
执行环境需要第三方JAR包的OSS路径。
如果执行SQL时,需要依赖JAR包,请先将JAR包上传至OSS的存储空间。如何上传文件,请参见控制台上传文件。
spark.jars
最大连接数
否
Spark维护的最大的Session数量,每个Session对应一个独立线程,配置过大可能引起OOM错误。
spark.sql.retainedSessions
其他配置
否
其他Spark配置。详情请参见Spark应用配置参数说明和Spark配置。
无
停止ThriftServer
当您不需要执行交互式查询时,可以停止ThriftServer,释放ThriftServer占用的资源。停止后,Job型资源组会使用批处理方式执行Spark SQL。
停止ThriftServer会中断当前所有执行中的SQL和排队中的SQL。请确保暂无执行中和排队中的SQL,或这些SQL中断对业务无影响后,再停止ThriftServer。
在集群管理>资源管理>资源组管理页面,找到目标Job型资源组,然后在操作列中单击ThriftServer配置。
在ThriftServer配置页面,单击停止。
常见问题
集群的预留资源为32 ACU。新建的Job型资源组和默认资源组同时消耗32 ACU的预留资源吗?
如果您的集群为企业版或基础版,预留资源只能全部分配给默认资源组。即只有默认的Interactive型资源组能够消耗预留资源。新建的Job型资源组或Interactive型资源组,只能消耗弹性资源。
如果您的集群为湖仓版,预留资源可以分配给默认资源组,也可以分配给新建的Job型资源组或Interactive型资源组。默认资源组的计算最小/最大资源,即为分配给默认资源组的预留资源。集群计算预留资源与默认资源组计算最小/最大资源的差值,即为可以分配给新建的Job型资源组或Interactive型资源组的资源。