获取资源调度中的队列信息

最近更新时间:2024-09-06 17:52:55

我的收藏

1. 接口描述

接口请求域名: emr.tencentcloudapi.com 。

获取资源调度中的队列信息

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:DescribeYarnQueue。
Version String 公共参数,本接口取值:2019-01-03。
Region String 公共参数,详见产品支持的 地域列表
InstanceId String 集群Id
示例值:emr-xxx
Scheduler String 调度器,可选值:

1. capacity
2. fair
示例值:capacity

3. 输出参数

参数名称 类型 描述
Queue String 队列信息。是一个对象转成的json字符串,对应的golang结构体如下所示,比如QueueWithConfigSetForFairScheduler的第一个字段Name

<br/>Name string `json:"name"` //队列名称<br/>

- Name:字段名
- string:字段类型
- json:"name":表示在序列化和反序列化json时,对应的json key,下面以json key来指代
- //:后面的注释内容对应页面上看到的名称

字段类型以*开头的表示取值可能为json规范下的null,不同的语言需要使用能表达null的类型来接收,比如java的包装类型;字段类型以[]开头的表示是数组类型;json key在调用ModifyYarnQueueV2接口也会使用。

- 公平调度器

<br/>type QueueWithConfigSetForFairScheduler struct {<br/> Name string `json:"name"` //队列名称<br/> MyId string `json:"myId"` // 队列id,用于编辑、删除、克隆时使用<br/> ParentId string `json:"parentId"` // 父队列Id<br/> Type *string `json:"type"` // 队列归属。parent或空,当确定某个队列是父队列,且没有子队列时,才可以设置,通常用来支持放置策略nestedUserQueue<br/> AclSubmitApps *AclForYarnQueue `json:"aclSubmitApps"` // 提交访问控制<br/> AclAdministerApps *AclForYarnQueue `json:"aclAdministerApps"` // 管理访问控制<br/> MinSharePreemptionTimeout *int `json:"minSharePreemptionTimeout"` // 最小共享优先权超时时间<br/> FairSharePreemptionTimeout *int `json:"fairSharePreemptionTimeout"` // 公平份额抢占超时时间<br/> FairSharePreemptionThreshold *float32 `json:"fairSharePreemptionThreshold"` // 公平份额抢占阈值。取值 (0,1]<br/> AllowPreemptionFrom *bool `json:"allowPreemptionFrom"` // 抢占模式<br/> SchedulingPolicy *string `json:"schedulingPolicy"` // 调度策略,取值有drf、fair、fifo<br/> IsDefault *bool `json:"isDefault"` // 是否是root.default队列<br/> IsRoot *bool `json:"isRoot"` // 是否是root队列<br/> ConfigSets []ConfigSetForFairScheduler `json:"configSets"` // 配置集设置<br/> Children []QueueWithConfigSetForFairScheduler `json:"queues"` // 子队列信息。递归<br/>}<br/><br/>type AclForYarnQueue struct {<br/> User *string `json:"user"` //用户名<br/> Group *string `json:"group"`//组名<br/>}<br/><br/>type ConfigSetForFairScheduler struct {<br/> Name string `json:"name"` // 配置集名称<br/> MinResources *YarnResource `json:"minResources"` // 最小资源量<br/> MaxResources *YarnResource `json:"maxResources"` // 最大资源量<br/> MaxChildResources *YarnResource `json:"maxChildResources"` // 能够分配给为未声明子队列的最大资源量<br/> MaxRunningApps *int `json:"maxRunningApps"` // 最高可同时处于运行的App数量<br/> Weight *float32 `json:"weight"` // 权重<br/> MaxAMShare *float32 `json:"maxAMShare"` // App Master最大份额<br/>}<br/><br/>type YarnResource struct {<br/> Vcores *int `json:"vcores"`<br/> Memory *int `json:"memory"`<br/> Type *string `json:"type"` // 当值为`percent`时,表示使用的百分比,否则就是使用的绝对数值<br/>}<br/>


- 容量调度器

<br/>type QueueForCapacitySchedulerV3 struct {<br/> Name string `json:"name"` // 队列名称<br/> MyId string `json:"myId"` // 队列id,用于编辑、删除、克隆时使用<br/> ParentId string `json:"parentId"` // 父队列Id<br/> Configs []ConfigForCapacityV3 `json:"configs"` //配置集设置<br/> State *string `json:"state"` // 资源池状态<br/> DefaultNodeLabelExpression *string `json:"default-node-label-expression"` // 默认标签表达式<br/> AclSubmitApps *AclForYarnQueue `json:"acl_submit_applications"` // 提交访问控制<br/> AclAdminQueue *AclForYarnQueue `json:"acl_administer_queue"` //管理访问控制<br/> MaxAllocationMB *int32 `json:"maximum-allocation-mb"` // 分配Container最大内存数量<br/> MaxAllocationVcores *int32 `json:"maximum-allocation-vcores"` // Container最大vCore数量<br/> IsDefault *bool `json:"isDefault"`// 是否是root.default队列<br/> IsRoot *bool `json:"isRoot"` // 是否是root队列<br/> Queues []*QueueForCapacitySchedulerV3 `json:"queues"`//子队列信息。递归<br/>}<br/>type ConfigForCapacityV3 struct {<br/> Name string `json:"configName"` // 配置集名称<br/> Labels []CapacityLabel `json:"labels"` // 标签信息<br/> MinUserLimitPercent *int32 `json:"minimum-user-limit-percent"` // 用户最小容量<br/> UserLimitFactor *float32 `json:"user-limit-factor" valid:"rangeExcludeLeft(0&#124;)"` // 用户资源因子<br/> MaxApps *int32 `json:"maximum-applications" valid:"rangeExcludeLeft(0&#124;)"` // 最大应用数Max-Applications<br/> MaxAmPercent *float32 `json:"maximum-am-resource-percent"` // 最大AM比例<br/> DefaultApplicationPriority *int32 `json:"default-application-priority"` // 资源池优先级<br/>}<br/>type CapacityLabel struct {<br/> Name string `json:"labelName"`<br/> Capacity *float32 `json:"capacity"` // 容量<br/> MaxCapacity *float32 `json:"maximum-capacity"` //最大容量<br/>}<br/><br/>type AclForYarnQueue struct {<br/> User *string `json:"user"` //用户名<br/> Group *string `json:"group"`//组名<br/>}<br/>

Version String 版本
示例值:v2
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 获取资源调度中的队列信息

输入示例

POST / HTTP/1.1
Host: emr.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: DescribeYarnQueue
<公共请求参数>

{
    "InstanceId": "emr-xxx",
    "Scheduler": "capacity"
}

输出示例

{
    "Response": {
        "Queue": "{\"name\":\"root\",\"myId\":\"root\",\"parentId\":\"root\",\"configs\":[{\"configName\":\"default\",\"labels\":[{\"labelName\":\"\\u003cDEFAULT_PARTITION\\u003e\",\"capacity\":null,\"maximum-capacity\":null,\"state\":0},{\"labelName\":\"test\",\"capacity\":null,\"maximum-capacity\":null,\"state\":0},{\"labelName\":\"test2\",\"capacity\":null,\"maximum-capacity\":null,\"state\":0}],\"minimum-user-limit-percent\":null,\"user-limit-factor\":null,\"maximum-applications\":null,\"maximum-am-resource-percent\":null,\"default-application-priority\":null}],\"state\":null,\"default-node-label-expression\":null,\"acl_submit_applications\":null,\"acl_administer_queue\":null,\"maximum-allocation-mb\":null,\"maximum-allocation-vcores\":null,\"isDefault\":null,\"isRoot\":true,\"queues\":[{\"name\":\"default\",\"myId\":\"root.default\",\"parentId\":\"root\",\"configs\":[{\"configName\":\"default\",\"labels\":[{\"labelName\":\"\\u003cDEFAULT_PARTITION\\u003e\",\"capacity\":50,\"maximum-capacity\":100,\"state\":0}],\"minimum-user-limit-percent\":null,\"user-limit-factor\":1,\"maximum-applications\":null,\"maximum-am-resource-percent\":null,\"default-application-priority\":null}],\"state\":null,\"default-node-label-expression\":null,\"acl_submit_applications\":null,\"acl_administer_queue\":null,\"maximum-allocation-mb\":null,\"maximum-allocation-vcores\":null,\"isDefault\":true,\"isRoot\":null,\"queues\":[]},{\"name\":\"q1\",\"myId\":\"root.q1\",\"parentId\":\"root\",\"configs\":[{\"configName\":\"default\",\"labels\":[{\"labelName\":\"\\u003cDEFAULT_PARTITION\\u003e\",\"capacity\":50,\"maximum-capacity\":100,\"state\":0},{\"labelName\":\"test\",\"capacity\":100,\"maximum-capacity\":100,\"state\":0}],\"minimum-user-limit-percent\":null,\"user-limit-factor\":null,\"maximum-applications\":null,\"maximum-am-resource-percent\":null,\"default-application-priority\":null}],\"state\":\"RUNNING\",\"default-node-label-expression\":null,\"acl_submit_applications\":{\"user\":\"*\",\"group\":\"*\"},\"acl_administer_queue\":{\"user\":\"*\",\"group\":\"*\"},\"maximum-allocation-mb\":null,\"maximum-allocation-vcores\":null,\"isDefault\":null,\"isRoot\":null,\"queues\":[]}]}",
        "Version": "v3",
        "RequestId": "abc"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
FailedOperation 操作失败。
InternalError.CamCgwError 内部服务调用异常。
InternalError.WoodServerError 内部服务调用异常。
UnauthorizedOperation.CheckCamAuth 校验账号操作无权限。