Superior Scheduler REST API接口介绍
功能简介
REST/HTTP是Superior Scheduler在YARN资源管理器主机和YARN资源管理网络服务端口的一部分。通常以address:port as SS_REST_SERVER.的形式指示YARN。
下面使用HTTPS作为URL的一部分,并且只有HTTPS将得到支持。
Superior Scheduler接口
- 查询Application
- 查询scheduler engine中的所有application。
- URL
GET https://<SS_REST_SERVER>/ws/v1/sscheduler/applications/list
“SS_REST_SERVER”即:ResourceManager IP地址:端口
- ResourceManager IP地址:可登录FusionInsight Manager界面,选择“集群 > 服务 > Yarn > 实例”查看任一ResourceManager的业务IP获取。
- 端口:ResourceManager的HTTPS端口。可登录FusionInsight Manager界面,选择“集群 > 服务 > Yarn > 配置 > 全部配置”搜索并查看“yarn.resourcemanager.webapp.https.port”参数值获取。
- 输入
- 输出
JSON Response: { "applicationlist": [ { "id": "1020201_0123_12", "queue": "root.Q1.Q11", "user": "cchen", "resource_request": { "vcores" : 10, "memory" : 100 }, "resource_inuse": { "vcores" : 100, "memory" : 2000 }, "number_running_container": 100, "number_pending_request": 10 }, { "id": "1020201_0123_15", "queue": "root.Q2.Q21", "user": "Test", "resource_request": { "vcores" : 4, "memory" : 100 }, "resource_inuse": { "vcores" : 20, "memory" : 200 }, "resource_reserved": { "vcores" : 10, "memory" : 100 }, "number_running_container": 20, "number_pending_container": 4, "number_reserved_container":2 } ] }
表1 all application参数 参数属性
参数类型
参数描述
applicationlist
array
application ID数组。
queue
String
application队列名称。
user
String
提交application的用户名称。
resource_request
object
当前所需要的资源,包括vcores、内存等。
resource_inuse
object
当前所使用的资源,包括vcores、内存等。
resource_reserved
object
当前所预留的资源,包括vcores、内存等。
number_running_container
int
正在运行的container的总数。这反映了superior引擎的判定数量。
number_pending_request
int
挂起申请的总数。这是所有分配请求总和。
number_reserved_container
int
预留container的总数。这反映了superior引擎的判定数量。
id
String
application ID。
- URL
- 查询scheduler engine中的单个application。
- URL
GET https://<SS_REST_SERVER>/ws/v1/sscheduler/applications/{application_id}
- 输入
- 输出
JSON Response: { "applicationlist": [ { "id": "1020201_0123_12", "queue": "root.Q1.Q11", "user": "cchen", "resource_request": { "vcores" : 3, "memory" : 3072 }, "resource_inuse": { "vcores" : 100, "memory" : 2048 }, "number_running_container": 2, "number_pending_request": 3, "number_reserved_container":1 "master_container_id": 23402_3420842 "master_container_resource": node1.domain.com "blacklist": [ { "resource": "node5" }, { "resource": "node8" } ], "demand": [ { "priority": 1, "ismaster": true, "capability": { "vcores": 2, "memory": 2048 }, "count": 1, "relaxlocality": true, "locality": [ { "target": "node1", "count": 1, "strict": false } ], "resourceselect": "label1", "pending_reason": "application limit reached", "reserved_resource": { "vcores":1, "memory":1024 }, "reservations":[ "id": "23402_3420878", "resource": "node1.domain.com", "reservedAmount": { "vcores":1, "memory":1024 } ] }, { "priority": 1, "ismaster": false, "capability": { "vcores": 1, "memory": 1024 }, "count": 2, "relaxlocality": true, "locality": [ { "target": "node1", "count": 1, "strict": false }, { "target": "node2", "count": 1, "strict": false }, { "target": "rackA", "count": 2, "strict": false }, ], "resourceselect": "label1", "pending_reason": "no available resource" } ], "containers": [ { "id": "23402_3420842", "resource": "node1.domain.com", "capability": { "vcores": 1, "memory": 1024 } }, { "id": "23402_3420853", "resource": "node2.domain.com", "capability": { "vcores": 1, "memory": 1024 } } ] } }
- 异常
表2 single application参数 参数属性
参数类型
参数描述
application
object
application对象。
id
String
application ID。
queue
String
application队列名称。
user
String
application的用户名称。
resource_request
object
当前所申请的资源,包括vcores、内存等。
resource_inuse
object
当前所使用的资源,包括vcores、内存等。
resource_reserved
object
当前所预留的资源,包括vcores、内存等。
number_running_container
int
正在运行的container的总数。这反映了superior引擎的判定数量。
number_pending_request
int
挂起申请的总数。这反映了superior引擎的判定数量。
number_reserved_container
int
预留container的总数。这反映了superior引擎的判定数量。
master_container_id
String
总containerID。
master_container_resource
String
运行的主container的主机名。
demand
array
demand对象数组。
priority
int
请求的优先级。
ismaster
boolean
判断是否为application master需求。
capability
object
Capability对象。
vcores, memory, ..
int
数值可消耗资源属性,给该命令定义分配“单元”。
count
int
单元所需的数量。
relaxlocality
boolean
本地化需求优先,如果不能满足则不强制满足。
locality
object
本地化对象。
target
string
本地化目标的名称(即:节点1,框架1)。
count
int
资源“单元”数量与所需的本地需求。
strict
boolean
是否强制本地性。
resourceselect
String
application资源选择。
pending_reason
String
该application pending的理由。
resource_reserved
object
当前需求的预留资源,包括vcores、内存等。
reservations
array
预留container对象的数组。
reservations:id
String
预留container的ID。
reservations:resource
String
container的分配地址。
reservations:reserveAmount
object
预留项的总数。
containers
array
分配container对象的数组。
containers:id
String
containerID。
containers:resource
String
container分配的位置。
containers:capability
object
Capability对象。
containers:vcores,memory…
int
分配给该container的可消耗数值型资源属性。
- URL
- 查询scheduler engine中的所有application。
- 查询Queue
- 查询scheduler engine中的所有queue,包括叶子节点和所有中间队列。
- URL
- 输入
- 输出
JSON Response: { "queuelist": [ { "name": "root.default", "eopen_state": "OPEN", "eactive_state": "ACTIVE", "open_state": "OPEN", "active_state": "ACTIVE", "number_pending_application": 2, "number_running_application": 10, "number_pending_request": 2, "number_running_container": 10, "number_reserved_container":1, "resource_inuse" { "vcores": 10, "memory": 10240 }, "resource_request" { "vcores": 2, "memory": 2048 }, "resource_reserved" { "vcores": 1 "memory": 1024 } }, { "name": "root.dev", "eopen_state": "OPEN", "eactive_state": "INACTIVE", "open_state": "OPEN", "active_state": "INACTIVE", "number_pending_application": 2, "number_running_application": 10, "number_pending_request": 2, "number_running_container": 10, "number_reserved_container":0, "resource_inuse" { "vcores": 10, "memory": 10240 }, "resource_request" { "vcores": 2, "memory": 2048 }, "resource_reserved" { "vcores": 0 "memory": 0 } }, { "name": "root.qa", "eopen_state" : "CLOSED", "eactive_state" : "ACTIVE", "open_state": "CLOSED", "active_state": "ACTIVE", "number_pending_application": 2, "number_running_application": 10, "number_pending_request": 2, "number_running_container": 10, "number_reserved_container":0, "resource_inuse" { "vcores": 10, "memory": 10240 }, "resource_request" { "vcores": 2, "memory": 2048 }, "resource_reserved" { "vcores": 1 "memory": 1024 } }, ] }
表3 all queues参数 参数属性
参数类型
参数描述
queuelist
array
队列名称列表。
name
String
队列名称。
open_state
String
队列的内在状态(自身状态)。表示队列的有效状态为OPEN或CLOSED。CLOSED状态的队列不接受任何新的allocation请求。
eopen_state
String
队列的外在状态(父队列状态)。有效状态为队列自身状态及其父队列状态的组合。CLOSED状态的队列不接受任何新的allocation请求。
active_state
String
队列的内在状态(自身状态)。表示队列的有效状态为ACTIVE或INACTIVE。INACTIVE状态的队列不能调度任何应用程序。
eactive_state
String
队列的外在状态(父队列状态)。有效状态为队列自身状态及其父队列状态的组合。INACTIVE状态的队列不能调度任何应用程序。
number_pending_application
int
挂起应用的总和。
number_running_application
int
正在运行应用的总和。
number_pending_request
int
挂起请求的总和。
number_running_container
int
正在运行container的总和。
numbert_reserved_container
int
预留container的总和。
resource_request
object
以vcores和内存等形式在队列中挂起的资源请求。
resource_inuse
object
以vcores和内存等形式在队列中使用的资源。
resource_reserved
object
以vcores和内存等形式在队列中预留的资源。
active_state
String
描述表示队列ACTIVE或INACTIVE状态。一个INACTIVE队列不能调度任何分配请求。
- 查询scheduler engine中的单个queue,包括叶子节点和所有中间队列。
- 输出
JSON Response: { "queue": { "name": "root.default", "eopen_state": "CLOSED", "eactive_state": "INACTIVE", "open_state": "CLOSED", "active_state": "INACTIVE", "leaf_queue" : yes, "number_pending_application": 100, "number_running_application": 10, "number_pending_request": 10, "number_running_container": 10, "number_reserved_container:1, "resource_inuse" { "vcores": 10, "memory": 10240 }, "resource_request" { "vcores": 2, "memory": 2048 }, "resource_reserved" { "vcores": 1, "memory": 1024 } "configuration": { "description": "Production spark queue", "max_pending_application": 10000, "max_running_application": 1000, "allocation_order_policy": "FIFO", "default_resource_select": "label1", "max_master_share": 10%, "max_running_application_per_user": -1, "max_allocation_unit": { "vcores": 32, "memory": 128000 }, "user_acl": [ { "user": "user1" }, { "group": "group1" } ], "admin_acl": [ { "user": "user2" }, { "group": "group2" } ] } } }
表4 single queue参数 参数属性
参数类型
参数描述
queue
object
队列对象。
name
String
队列名称。
description
String
队列描述。
open_state
String
队列的内在状态(自身状态)。表示队列的有效状态为OPEN或CLOSED。CLOSED状态的队列不接受任何新的allocation请求。
eopen_state
String
队列的外在状态(父队列状态)。有效状态为队列自身状态及其父队列状态的组合。CLOSED状态的队列不接受任何新的allocation请求。
active_state
String
队列的内在状态(自身状态)。表示队列的有效状态为ACTIVE或INACTIVE。INACTIVE状态的队列不能调度任何应用程序。
eactive_state
String
队列的外在状态(父队列状态)。有效状态为队列自身状态及其父队列状态的组合。INACTIVE状态的队列不能调度任何应用程序。
leaf_queue
boolean
表示队列是否在树节点或中间队列。表示叶子节点队列。
number_pending_application
int
当前的挂起请求数量。如果是中间队列/父队列,这是所有子队列的集合。
number_running_application
int
当前正在运行应用的数量。如果是中间队列/父队列,这是所有子队列的集合。
number_pending_request
int
挂起命令的数量;每个未完成命令的总计数。如果是中间队列/父队列,这是所有子队列的集合。
number_running_container
int
正在运行container的数量。如果是中间队列/父队列,这是所有子队列的集合。
number_reserved_container
int
预留container的数量。如果是中间队列/父队列,这是所有子队列的集合。
resource_request
object
以vcores和内存等形式在队列中挂起的资源请求。
resource_inuse
object
以vcores和内存等形式在队列中使用的资源。
resource_reserved
object
以vcores和内存等形式预留在队列中的资源。
configuration
object
队列配置目标。
max_pending_application
int
最大挂起应用数。如果是中间队列/父队列,这是所有子队列的集合。
max_running_application
int
最大运行应用数。如果是中间队列/父队列,这是所有子队列的集合。
allocation_order_policy
String
分配策略,可以使用FIFO原则,PRIORITY原则或者FAIR原则。
max_running_application_per_user
int
每个使用者运行应用的最大数量。
max_master_share
string
该队列共享的百分比。
max_allocation_unit
object
单个container允许的最大资源,该资源以vcores和内存等形式存在。
default_resource_select
String
缺省资源选择表达式。它被使用在当应用没有被指定一个提交区间值时。
user_acl
array
队列中被给予user权限的使用者。
admin_acl
array
该队列中被给予admin权限的使用者。
group
String
用户组名称。
user
String
用户名称。
- 输出
- 查询scheduler engine中的所有queue,包括叶子节点和所有中间队列。
- 查询Resource Pool
- 查询scheduler engine中所有resource pool。
- 输出
JSON Response: { "resourcepool_list": [ { "name": "pool1", "description": "resource pool for crc", "number_member": 5, "members": [ { "resource": "node1" }, { "resource": "node2" }, { "resource": "node3" }, { "resource": "node4" }, { "resource": "node5" } ], "available_resource": { "vcores": 60, "memory": 60000 }, "total_resource": { "vcores": 100, "memory": 128000 }, "configuration": { "resources": [ { "resource": "node1" }, { "resource": "node[2-5]" } ], "resource_select": "label1" } }, { "name": "pool2", "description": "resource pool for erc", "number_member": 4 "members": [ { "resource": "node6" }, { "resource": "node7" }, { "resource": "node8" }, { "resource": "node9" } ], "available_resource": { "vcores": 56, "memory": 48000 }, "total_resource": { "vcores": 100, "memory": 128000 }, "configuration": { "resources": [ { "resource": "node6" }, { "resource": "node[7-9]" } ], "resource_select": "label1" } }, { "name": "default", "description": "system-generated", "number_member": 1, "members": [ { "resource": "node0" } ], "available_resource": { "vcores": 8, "memory": 8192 }, "total_resource": { "vcores": 16, "memory": 12800 } } ] }
表5 all resource pools参数 参数属性
参数类型
参数描述
resourcepool_list
array
resource pool对象数组。
name
String
resource pool名称。
number_member
int
resource pool成员数量。
description
String
resource pool描述。
members
array
当前resource pool成员的资源名称数组。
resource
String
资源名称。
available_resource
object
该resource pool中当前可使用的资源。
vcores, memory, ..
int
可消耗数值型资源属性,当前resource pool中可用资源的属性,该属性的值以数字表示。
total_resource
object
该resource pool所有资源。
vcores, memory, ..
int
可消耗数值型资源属性,当前resource pool中总资源的属性,该属性的值以数字表示。
configuration
object
配置目标。
resources
array
所配置的资源名称pattern数组。
resource
String
资源名称模式。
resource_select
String
资源选择表达式。
- 输出
- 查询scheduler engine中单个resource pool
- 输出
JSON Response: { "resourcepool": { "name": "pool1", "description": "resource pool for crc", "number_member": 5 "members": [ { "resource": "node1" }, { "resource": "node2" }, { "resource": "node3" }, { "resource": "node4" }, { "resource": "node5" } ], "available_resource": { "vcores": 60, "memory": 60000 }, "total_resource": { "vcores": 100, "memory": 128000 }, "configuration": { "resources": [ { "resource": "node6" }, { "resource": "node[7-9]" } ], "resource_select": "label1" } } }
表6 single resource pool参数 参数属性
参数类型
参数描述
resourcepool
object
resource pool对象。
name
String
resource pool名称。
description
String
resource pool描述。
number_member
int
resource pool成员数量。
members
array
该resource pool现任成员的资源名称数组。
resource
String
资源名称。
available_resource
object
该resource pool当前可用资源。
vcores, memory, ..
int
可消耗数值型资源属性,当前resource pool中可用资源的属性,该属性的值以数字表示。
total_resource
object
该resource pool中所有资源。
vcores, memory, ..
int
可消耗数值型资源属性,当前resource pool中总资源的属性,该属性的值以数字表示。
configuration
object
配置目标。
resources
array
所配置的资源名称pattern数组。
resource
String
资源名称模式。
resource_select
String
资源选择表达式。
- 输出
- 查询scheduler engine中所有resource pool。
- 查询policiesxmlconf
- 输出
<policies> <policlist> <resourcepool>default</resourcepool> <queues> <name>default</name> <fullname>root.default</fullname> <share>20.0</share> <reserve>memory 0,vcores 0 : 0.0%</reserve> <minimum>memory 0,vcores 0 : 20.0%</minimum> <maximum>memory 0,vcores 0 : 100.0%</maximum> <defaultuser> <maximum>100.0%</maximum> <weight>1.0</weight> </defaultuser> </queues> </policlist> </policies>
- 输出