要仅针对RM启用跨域支持(CORS)(不针对NM启用它),请设置以下配置参数:
在core-site.xml中,将org.apache.hadoop.security.HttpCrossOriginFilterInitializer添加到hadoop.http.filter.initializers中。在yarn-site.xml中,将yarn.resourcemanager.webapp.cross-origin.enabled设置为true。
群集信息资源提供有关群集的总体信息。
项目 | 数据类型 | 描述 |
---|---|---|
ID | 长 | 集群ID |
startsOn | 长 | 集群启动的时间(从开始到现在的毫秒数) |
州 | 串 | ResourceManager状态-有效值为:NOTINITED,INITED,STARTED,STOPPED |
州 | 串 | ResourceManager HA状态-有效值为:INITIALIZING,ACTIVE,STANDBY,STOPPED |
rmStateStoreName | 串 | 实现ResourceManager状态存储的类的完全限定名称 |
resourceManagerVersion | 串 | ResourceManager的版本 |
resourceManagerBuildVersion | 串 | ResourceManager构建字符串以及构建版本,用户和校验和 |
resourceManagerVersionBuiltOn | 串 | 生成ResourceManager的时间戳(自纪元以来以毫秒为单位) |
hadoopVersion | 串 | Hadoop通用版本 |
hadoopBuildVersion | 串 | 具有构建版本,用户和校验和的Hadoop通用构建字符串 |
hadoopVersionBuiltOn | 串 | 建立hadoop common的时间戳(自纪元以来以毫秒为单位) |
haZooKeeperConnectionState | 串 | ZooKeeper高可用性服务的连接状态 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / info
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ clusterInfo”: { “ id”:1324053971963, “ startedOn”:1324053971963, “ state”:“ STARTED”, “ haState”:“ ACTIVE”, “ rmStateStoreName”:“ org.apache.hadoop.yarn.server.resourcemanager.recovery.NullRMStateStore”, “ resourceManagerVersion”:“ 3.0.0-SNAPSHOT”, “ resourceManagerBuildVersion”:“ 3.0.0-SNAPSHOT来自user1源校验和的未知来源11111111111111111111111111111111111”, “ resourceManagerVersionBuiltOn”:“ 2016-01-01T01:00Z”, “ hadoopVersion”:“ 3.0.0-SNAPSHOT”, “ hadoopBuildVersion”:“ user1源校验和从11.111.111.111.111111111111111发出的未知的3.0.0-SNAPSHOT”, “ hadoopVersionBuiltOn”:“ 2016-01-01T01:00Z”, “ haZooKeeperConnectionState”:“未启用ResourceManager HA。” } }
XML回应
HTTP请求:
接受:application / xml 获取http:// rm-http-address:port / ws / v1 / cluster / info
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:712 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <clusterInfo> <id> 1476912658570 </ id> <startedOn> 1476912658570 </ startedOn> <状态>开始</状态> <haState>活动的</ haState> <rmStateStoreName> org.apache.hadoop.yarn.server.resourcemanager.recovery.NullRMStateStore </ rmStateStoreName> <resourceManagerVersion> 3.0.0-SNAPSHOT </ resourceManagerVersion> <resourceManagerBuildVersion> 3.0.0-SNAPSHOT来自user1源校验和未知的11111111111111111111111111111111 </ resourceManagerBuildVersion> <resourceManagerVersionBuiltOn> 2016-01-01T01:00Z </ resourceManagerVersionBuiltOn> <hadoopVersion> 3.0.0-SNAPSHOT </ hadoopVersion> <hadoopBuildVersion> 3.0.0-SNAPSHOT来自user1源校验和未知的11111111111111111111111111111111111 </ hadoopBuildVersion> <hadoopVersionBuiltOn> 2016-01-01T01:00Z </ hadoopVersionBuiltOn> <haZooKeeperConnectionState>未启用ResourceManager HA。</ haZooKeeperConnectionState> </ clusterInfo>
群集指标资源提供了有关群集的一些总体指标。应该从jmx界面检索更详细的指标。
项目 | 数据类型 | 描述 |
---|---|---|
apps已提交 | 整型 | 提交的申请数量 |
appsCompleted | 整型 | 申请数量 |
appsPending | 整型 | 申请数量 |
appsRunning | 整型 | 正在运行的应用程序数 |
appsFailed | 整型 | 申请数量失败 |
appsKilled | 整型 | 被杀死的申请数量 |
保留MB | 长 | 保留的内存量(MB) |
可用MB | 长 | 可用内存量(MB) |
分配的MB | 长 | 分配的内存量(MB) |
总MB | 长 | 总内存量(MB) |
保留的VirtualCores | 长 | 保留的虚拟核心数 |
availableVirtualCores | 长 | 可用虚拟核心数 |
已分配的虚拟核心 | 长 | 分配的虚拟核心数 |
totalVirtualCores | 长 | 虚拟核心总数 |
分配的容器 | 整型 | 分配的容器数 |
保留的容器 | 整型 | 保留的容器数 |
containerPending | 整型 | 待处理的容器数 |
totalNodes | 整型 | 节点总数 |
activeNodes | 整型 | 活动节点数 |
lostNodes | 整型 | 丢失的节点数 |
不健康的节点 | 整型 | 不良节点数 |
退役节点 | 整型 | 退役的节点数 |
退役节点 | 整型 | 退役的节点数 |
重新启动节点 | 整型 | 重新启动的节点数 |
shutdownNodes | 整型 | 关闭的节点数 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / metrics
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ clusterMetrics”: { “ appsSubmitted”:0, “ appsCompleted”:0, “ appsPending”:0, “ appsRunning”:0, “ appsFailed”:0, “ appsKilled”:0, “ reservedMB”:0, “ availableMB”:17408, “ allocatedMB”:0, “ reservedVirtualCores”:0, “ availableVirtualCores”:7, “ allocatedVirtualCores”:1, “ ContainersAllocated”:0, “ containersReserved”:0, “ containerspending”:0, “ totalMB”:17408, “ totalVirtualCores”:8, “ totalNodes”:1, “ lostNodes”:0, “ unhealthyNodes”:0, “ decommissioningNodes”:0, “ decommissionedNodes”:0, “ rebootedNodes”:0, “ activeNodes”:1, “ shutdownNodes”:0 } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / metrics 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:432 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <clusterMetrics> <appsSubmitted> 0 </ appsSubmitted> <appsCompleted> 0 </ appsCompleted> <appsPending> 0 </ appsPending> <appsRunning> 0 </ appsRunning> <appsFailed> 0 </ appsFailed> <appsKilled> 0 </ appsKilled> <reservedMB> 0 </ reservedMB> <availableMB> 17408 </ availableMB> <allocatedMB> 0 </ allocatedMB> <reservedVirtualCores> 0 </ reservedVirtualCores> <availableVirtualCores> 7 </ availableVirtualCores> <allocatedVirtualCores> 1 </ allocatedVirtualCores> <containersAllocated> 0 </ containersAllocated> <containersReserved> 0 </ containersReserved> <containersPending> 0 </ containersPending> <totalMB> 17408 </ totalMB> <totalVirtualCores> 8 </ totalVirtualCores> <totalNodes> 1 </ totalNodes> <lostNodes> 0 </ lostNodes> <unhealthyNodes> 0 </ unhealthyNodes> <decommissioningNodes> 0 </ decommissioningNodes> <decommissionedNodes> 0 </ decommissionedNodes> <rebootedNodes> 0 </ rebootedNodes> <activeNodes> 1 </ activeNodes> <shutdownNodes> 0 </ shutdownNodes> </ clusterMetrics>
调度程序资源包含有关集群中配置的当前调度程序的信息。它目前支持Fifo,容量和公平调度程序。根据配置哪个调度程序,您将获得不同的信息,因此请务必查看类型信息。
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 调度程序类型-CapacityScheduler |
容量 | 浮动 | 配置的队列容量(相对于其父队列) |
已用容量 | 浮动 | 已用队列容量(百分比) |
最大容量 | 浮动 | 已配置的最大队列容量(相对于其父队列的百分比) |
queueName | 串 | 队列名称 |
s列 | 队列数组(JSON)/零个或多个队列对象(XML) | 队列资源的集合 |
健康 | 单个健康对象 | 容量调度程序的运行状况指标。此指标自2.8.0开始存在,但输出格式不正确。因此,用户不能完全使用此字段,此版本从3.2.0开始进行了优化。 |
项目 | 数据类型 | 描述 |
---|---|---|
容量 | 浮动 | 配置的队列容量(相对于其父队列) |
已用容量 | 浮动 | 已用队列容量(百分比) |
最大容量 | 浮动 | 已配置的最大队列容量(相对于其父队列的百分比) |
绝对容量 | 浮动 | 此队列可以使用整个集群的绝对容量百分比 |
绝对最大容量 | 浮动 | 该队列可以使用整个集群的绝对最大容量百分比 |
绝对使用容量 | 浮动 | 该队列在整个集群中使用的绝对已用容量百分比 |
numApplications | 整型 | 当前队列中的应用程序数 |
usedResources | 串 | 一个字符串,描述队列使用的当前资源 |
queueName | 串 | 队列名称 |
州 | QueueState的字符串 | 队列状态 |
s列 | 队列数组(JSON)/零个或多个队列对象(XML) | 子队列信息的集合。如果队列没有子队列,则省略。 |
使用资源 | 单个资源对象 | 此队列使用的资源总数 |
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 队列类型-CapacitySchedulerLeafQueueInfo |
numActiveApplications | 整型 | 此队列中活动的应用程序数 |
numPendingApplications | 整型 | 此队列中待处理的应用程序数 |
numContainers | 整型 | 使用的容器数 |
maxApplications | 整型 | 此队列可以拥有的最大应用程序数 |
maxApplicationsPerUser | 整型 | 每个用户可拥有的最大应用程序数量 |
maxActiveApplications | 整型 | 该队列可以拥有的最大活动应用程序数 |
maxActiveApplicationsPerUser | 整型 | 每个用户可拥有的最大活动应用程序数量 |
userLimit | 整型 | 配置中设置的最小用户限制百分比 |
userLimitFactor | 浮动 | 在配置中设置的用户限制因素 |
使用者 | 用户数组(JSON)/零个或多个用户对象(XML) | 包含已使用资源的用户对象的集合 |
项目 | 数据类型 | 描述 |
---|---|---|
用户名 | 串 | 使用资源的用户的用户名 |
使用资源 | 单个资源对象 | 用户在此队列中使用的资源量 |
numActiveApplications | 整型 | 此队列中该用户的活动应用程序数 |
numPendingApplications | 整型 | 此队列中为此用户的挂起的应用程序数 |
项目 | 数据类型 | 描述 |
---|---|---|
上一个 | 长 | 应用程序启动的时间(从纪元开始以毫秒为单位) |
OperationsInfo | 操作数组(JSON)/操作对象(XML) | 操作对象的集合 |
lastRunDetails | lastRunDetails(JSON)/ lastRunDetail对象(XML)的数组 | lastRunDetail对象的集合 |
项目 | 数据类型 | 描述 |
---|---|---|
运作 | 串 | 操作类型 |
计数 | 长 | 与操作相关的节点的ID |
资源 | 单个资源对象 | 与操作相关的资源 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / scheduler
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “计划程序”:{ “ schedulerInfo”:{ “容量”:100.0, “最大容量”:100.0, “ queueName”:“根”, “队列”:{ “队列”:[ { “绝对容量”:10.5, “ absoluteMaxCapacity”:50.0, “ absoluteUsedCapacity”:0.0, “容量”:10.5, “ maxCapacity”:50.0, “ numApplications”:0, “ queueName”:“ a”, “队列”:{ “队列”:[ { “ absoluteCapacity”:3.15, “ absoluteMaxCapacity”:25.0, “ absoluteUsedCapacity”:0.0, “容量”:30.000002, “ maxCapacity”:50.0, “ numApplications”:0, “ queueName”:“ a1”, “队列”:{ “队列”:[ { “绝对容量”:2.6775, “ absoluteMaxCapacity”:25.0, “ absoluteUsedCapacity”:0.0, “容量”:85.0, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:1 “ maxApplications”:267, “ maxApplicationsPerUser”:267, “最大容量”:100.0, “ numActiveApplications”:0, “ numApplications”:0, “ numContainers”:0, “ numPendingApplications”:0, “ queueName”:“ a1a”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:1.0, “用户”:null }, { “绝对容量”:0.47250003, “ absoluteMaxCapacity”:25.0, “ absoluteUsedCapacity”:0.0, “容量”:15.000001, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:1 “ maxApplications”:47, “ maxApplicationsPerUser”:47, “最大容量”:100.0, “ numActiveApplications”:0, “ numApplications”:0, “ numContainers”:0, “ numPendingApplications”:0, “ queueName”:“ a1b”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:1.0, “用户”:null } ] }, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>” }, { “绝对容量”:7.35, “ absoluteMaxCapacity”:50.0, “ absoluteUsedCapacity”:0.0, “容量”:70.0, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:100, “ maxApplications”:735, “ maxApplicationsPerUser”:73500, “最大容量”:100.0, “ numActiveApplications”:0, “ numApplications”:0, “ numContainers”:0, “ numPendingApplications”:0, “ queueName”:“ a2”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:100.0, “用户”:null } ] }, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>” }, { “绝对容量”:89.5, “ absoluteMaxCapacity”:100.0, “ absoluteUsedCapacity”:0.0, “容量”:89.5, “最大容量”:100.0, “ numApplications”:2, “ queueName”:“ b”, “队列”:{ “队列”:[ { “绝对容量”:53.7, “ absoluteMaxCapacity”:100.0, “ absoluteUsedCapacity”:0.0, “容量”:6000004, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:100, “ maxApplications”:5370, “ maxApplicationsPerUser”:537000, “最大容量”:100.0, “ numActiveApplications”:1, “ numApplications”:2, “ numContainers”:0, “ numPendingApplications”:1, “ queueName”:“ b1”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:100.0, “用户”:{ “用户”:[ { “ numActiveApplications”:0, “ numPendingApplications”:1, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ username”:“ user2” }, { “ numActiveApplications”:1, “ numPendingApplications”:0, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “用户名”:“ user1” } ] } }, { “ absoluteCapacity”:35.3525, “ absoluteMaxCapacity”:100.0, “ absoluteUsedCapacity”:0.0, “容量”:39.5, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:100, “ maxApplications”:3535, “ maxApplicationsPerUser”:353500, “最大容量”:100.0, “ numActiveApplications”:0, “ numApplications”:0, “ numContainers”:0, “ numPendingApplications”:0, “ queueName”:“ b2”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:100.0, “用户”:null }, { “绝对容量”:0.4475, “ absoluteMaxCapacity”:100.0, “ absoluteUsedCapacity”:0.0, “容量”:0.5, “ maxActiveApplications”:1, “ maxActiveApplicationsPerUser”:100, “ maxApplications”:44, “ maxApplicationsPerUser”:4400, “最大容量”:100.0, “ numActiveApplications”:0, “ numApplications”:0, “ numContainers”:0, “ numPendingApplications”:0, “ queueName”:“ b3”, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ type”:“ capacitySchedulerLeafQueueInfo”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>”, “ userLimit”:100, “ userLimitFactor”:100.0, “用户”:null } ] }, “ resourcesUsed”:{ “内存”:0, “ vCores”:0 }, “ state”:“ RUNNING”, “ usedCapacity”:0.0, “ usedResources”:“ <内存:0,vCores:0>” } ] }, “健康”:{ “ lastrun”:1326381444693, “ operationsInfo”:[ { “ operation”:“最后分配”, “ nodeId”:“ N / A”, “ containerId”:“ N / A”, “ queue”:“不适用” }, { “ operation”:“最新版本”, “ nodeId”:“ host.domain.com:8041”, “ containerId”:“ container_1326821518301_0005_01_000001”, “ queue”:“ root.default” }, { “ operation”:“最后抢占”, “ nodeId”:“ N / A”, “ containerId”:“ N / A”, “ queue”:“不适用” }, { “ operation”:“最后保留”, “ nodeId”:“ N / A”, “ containerId”:“ N / A”, “ queue”:“不适用” } ], “ lastRunDetails”:[ { “ operation”:“发布”, “计数”:0, “资源”:{ “内存”:0, “ vCores”:0 } }, { “ operation”:“分配”, “计数”:0, “资源”:{ “内存”:0, “ vCores”:0 } }, { “ operation”:“预订”, “计数”:0, “资源”:{ “内存”:0, “ vCores”:0 } } ] }, “ type”:“ capacityScheduler”, “ usedCapacity”:0.0 } } } json ** XML响应** HTTP请求: 接受:application / xml 获取http:// rm-http-address:port / ws / v1 / cluster / scheduler 响应标题: HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:5778 服务器:码头(6.1.26) 响应主体: XML <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <调度程序> <schedulerInfo xmlns:xsi =“ http://www.w3.org/2001/XMLSchema-instance” xsi:type =“ capacityScheduler”> <capacity> 100.0 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <queueName>根</ queueName> <队列> <队列> <capacity> 10.5 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 50.0 </ maxCapacity> <absoluteCapacity> 10.5 </ absoluteCapacity> <absoluteMaxCapacity> 50.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> a </ queueName> <状态>运行中</状态> <队列> <队列> <capacity> 30.000002 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 50.0 </ maxCapacity> <absoluteCapacity> 3.15 </ absoluteCapacity> <absoluteMaxCapacity> 25.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> a1 </ queueName> <状态>运行中</状态> <队列> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <capacity> 85.0 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 2.6775 </ absoluteCapacity> <absoluteMaxCapacity> 25.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> a1a </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 0 </ numActiveApplications> <numPendingApplications> 0 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 267 </ maxApplications> <maxApplicationsPerUser> 267 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 1 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户/> <userLimitFactor> 1.0 </ userLimitFactor> </ queue> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <容量> 15.000001 </容量> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 0.47250003 </ absoluteCapacity> <absoluteMaxCapacity> 25.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> a1b </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 0 </ numActiveApplications> <numPendingApplications> 0 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 47 </ maxApplications> <maxApplicationsPerUser> 47 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 1 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户/> <userLimitFactor> 1.0 </ userLimitFactor> </ queue> </ queues> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> </ queue> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <capacity> 70.0 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 7.35 </ absoluteCapacity> <absoluteMaxCapacity> 50.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> a2 </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 0 </ numActiveApplications> <numPendingApplications> 0 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 735 </ maxApplications> <maxApplicationsPerUser> 73500 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 100 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户/> <userLimitFactor> 100.0 </ userLimitFactor> </ queue> </ queues> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> </ queue> <队列> <capacity> 89.5 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 89.5 </ absoluteCapacity> <absoluteMaxCapacity> 100.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 2 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> b </ queueName> <状态>运行中</状态> <队列> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <capacity> 60.000004 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 53.7 </ absoluteCapacity> <absoluteMaxCapacity> 100.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 2 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> b1 </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 1 </ numActiveApplications> <numPendingApplications> 1 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 5370 </ maxApplications> <maxApplicationsPerUser> 537000 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 100 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户> <用户> <username> user2 </ username> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numPendingApplications> 1 </ numPendingApplications> <numActiveApplications> 0 </ numActiveApplications> </ user> <用户> <username> user1 </ username> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numPendingApplications> 0 </ numPendingApplications> <numActiveApplications> 1 </ numActiveApplications> </ user> </ users> <userLimitFactor> 100.0 </ userLimitFactor> </ queue> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <capacity> 39.5 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 35.3525 </ absoluteCapacity> <absoluteMaxCapacity> 100.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> b2 </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 0 </ numActiveApplications> <numPendingApplications> 0 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 3535 </ maxApplications> <maxApplicationsPerUser> 353500 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 100 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户/> <userLimitFactor> 100.0 </ userLimitFactor> </ queue> <queue xsi:type =“ capacitySchedulerLeafQueueInfo”> <capacity> 0.5 </ capacity> <usedCapacity> 0.0 </ usedCapacity> <maxCapacity> 100.0 </ maxCapacity> <absoluteCapacity> 0.4475 </ absoluteCapacity> <absoluteMaxCapacity> 100.0 </ absoluteMaxCapacity> <absoluteUsedCapacity> 0.0 </ absoluteUsedCapacity> <numApplications> 0 </ numApplications> <usedResources>&lt;内存:0,vCores:0&gt; </ usedResources> <queueName> b3 </ queueName> <状态>运行中</状态> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> <numActiveApplications> 0 </ numActiveApplications> <numPendingApplications> 0 </ numPendingApplications> <numContainers> 0 </ numContainers> <maxApplications> 44 </ maxApplications> <maxApplicationsPerUser> 4400 </ maxApplicationsPerUser> <maxActiveApplications> 1 </ maxActiveApplications> <maxActiveApplicationsPerUser> 100 </ maxActiveApplicationsPerUser> <userLimit> 100 </ userLimit> <用户/> <userLimitFactor> 100.0 </ userLimitFactor> </ queue> </ queues> <resourcesUsed> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resourcesUsed> </ queue> </ queues> <健康> <lastrun> 1326381444693 </ lastrun> <operationsInfo> <operation>最后分配</ operation> <nodeId>不适用</ nodeId> <containerId>不适用</ containerId> <queue>不适用</ queue> </ operationsInfo> <operationsInfo> <operation>最后发布</ operation> <nodeId> host.domain.com:8041 </ nodeId> <containerId> container_1326821518301_0005_01_000001 </ containerId> <queue> root.default </ queue> </ operationsInfo> <operationsInfo> <operation>最后抢占</ operation> <nodeId>不适用</ nodeId> <containerId>不适用</ containerId> <queue>不适用</ queue> </ operationsInfo> <operationsInfo> <operation>最后保留</ operation> <nodeId>不适用</ nodeId> <containerId>不适用</ containerId> <queue>不适用</ queue> </ operationsInfo> <lastRunDetails> <operation>发布</ operation> <count> 0 </ count> <资源> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resources> </ lastRunDetails> <lastRunDetails> <operation>分配</ operation> <count> 0 </ count> <资源> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resources> </ lastRunDetails> <lastRunDetails> <operation>预订</ operation> <count> 0 </ count> <资源> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resources> </ lastRunDetails> </ health> </ schedulerInfo> </ scheduler>
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 调度程序类型-fifoScheduler |
容量 | 浮动 | 队列容量(百分比) |
已用容量 | 浮动 | 已用队列容量(百分比) |
状态 | 串 | 队列状态-有效值为:STOPPED,RUNNING |
minQueueMemoryCapacity | 整型 | 最小队列内存容量 |
maxQueueMemoryCapacity | 整型 | 最大队列内存容量 |
numNodes | 整型 | 节点总数 |
usedNodeCapacity | 整型 | 已用节点容量 |
availNodeCapacity | 整型 | 可用节点容量 |
totalNodeCapacity | 整型 | 总节点容量 |
numContainers | 整型 | 容器数 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / scheduler
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “计划程序”: { “ schedulerInfo”: { “ type”:“ fifoScheduler”, “容量”:1, “ usedCapacity”:“ NaN”, “ qstate”:“正在运行”, “ minQueueMemoryCapacity”:1024, “ maxQueueMemoryCapacity”:10240, “ numNodes”:0, “ usedNodeCapacity”:0, “ availNodeCapacity”:0, “ totalNodeCapacity”:0, “ numContainers”:0 } } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / scheduler 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:432 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <调度程序> <schedulerInfo xmlns:xsi =“ http://www.w3.org/2001/XMLSchema-instance” xsi:type =“ fifoScheduler”> <capacity> 1.0 </ capacity> <usedCapacity> NaN </ usedCapacity> <qstate>运行中</ qstate> <minQueueMemoryCapacity> 1024 </ minQueueMemoryCapacity> <maxQueueMemoryCapacity> 10240 </ maxQueueMemoryCapacity> <numNodes> 0 </ numNodes> <usedNodeCapacity> 0 </ usedNodeCapacity> <availNodeCapacity> 0 </ availNodeCapacity> <totalNodeCapacity> 0 </ totalNodeCapacity> <numContainers> 0 </ numContainers> </ schedulerInfo> </ scheduler>
项目 | 数据类型 | 描述 |
---|---|---|
maxApps | 整型 | 队列可以拥有的最大应用程序数 |
minResources | 单个资源对象 | 保证队列的已配置最小资源 |
maxResources | 单个资源对象 | 队列允许的已配置的最大资源 |
usedResources | 单个资源对象 | 分配给队列中的容器的资源总和 |
fairResources | 单个资源对象 | 队列中公平分配的资源 |
clusterResources | 单个资源对象 | 集群容量 |
queueName | 串 | 队列名称 |
调度策略 | 串 | 队列使用的调度策略的名称 |
childQueues | 队列数组(JSON)/队列对象(XML) | 子队列信息的集合。如果队列没有childQueues或是叶子队列,则省略。 |
locatedContainers | 整型 | 分配的容器数 |
需求资源 | 单个资源对象 | 调度程序未满足此队列中的容器所请求的资源 |
待处理的容器 | 整型 | 待处理的容器数 |
可抢占 | 布尔值 | 如果可以抢占此队列中的容器,则为true |
保留容器 | 整型 | 保留容器数 |
stableFairResources | 单个资源对象 | 排队的公平份额 |
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 队列的类型-fairSchedulerLeafQueueInfo |
numActiveApps | 整型 | 此队列中活动的应用程序数 |
numPendingApps | 整型 | 此队列中待处理的应用程序数 |
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 使用的内存量(以MB为单位) |
虚拟核心 | 整型 | 虚拟核心数 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / scheduler
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “计划程序”:{ “ schedulerInfo”:{ “ rootQueue”:{ “ allocatedContainers”:0, “ childQueues”:{ “队列”:[ { “ allocatedContainers”:0, “ clusterResources”:{ “内存”:8192, “ vCores”:8 }, “ demandResources”:{ “内存”:0, “ vCores”:0 }, “ fairResources”:{ “内存”:0, “ vCores”:0 }, “ maxApps”:2147483647, “ maxResources”:{ “内存”:8192, “ vCores”:8 }, “ minResources”:{ “内存”:0, “ vCores”:0 }, “ numActiveApps”:0, “ numPendingApps”:0, “ pendingContainers”:0, “可抢占”:是, “ queueName”:“ root.default”, “ reservedContainers”:0, “ schedulingPolicy”:“公平”, “ steadyFairResources”:{ “内存”:4096, “ vCores”:0 }, “ type”:“ fairSchedulerLeafQueueInfo”, “ usedResources”:{ “内存”:0, “ vCores”:0 } }, { “ allocatedContainers”:0, “ childQueues”:{ “队列”:[ { “ allocatedContainers”:0, “ clusterResources”:{ “内存”:8192, “ vCores”:8 }, “ demandResources”:{ “内存”:0, “ vCores”:0 }, “ fairResources”:{ “内存”:10000, “ vCores”:0 }, “ maxApps”:2147483647, “ maxResources”:{ “内存”:8192, “ vCores”:8 }, “ minResources”:{ “内存”:5000, “ vCores”:0 }, “ numActiveApps”:0, “ numPendingApps”:0, “ pendingContainers”:0, “可抢占”:是, “ queueName”:“ root.sample_queue.sample_sub_queue”, “ reservedContainers”:0, “ schedulingPolicy”:“公平”, “ steadyFairResources”:{ “内存”:4096, “ vCores”:0 }, “ type”:“ fairSchedulerLeafQueueInfo”, “ usedResources”:{ “内存”:0, “ vCores”:0 } } ] }, “ clusterResources”:{ “内存”:8192, “ vCores”:8 }, “ demandResources”:{ “内存”:0, “ vCores”:0 }, “ fairResources”:{ “内存”:10000, “ vCores”:0 }, “ maxApps”:50, “ maxResources”:{ “内存”:8192, “ vCores”:0 }, “ minResources”:{ “内存”:10000, “ vCores”:0 }, “ pendingContainers”:0, “可抢占”:是, “ queueName”:“ root.sample_queue”, “ reservedContainers”:0, “ schedulingPolicy”:“公平”, “ steadyFairResources”:{ “内存”:4096, “ vCores”:0 }, “ usedResources”:{ “内存”:0, “ vCores”:0 } } ] }, “ clusterResources”:{ “内存”:8192, “ vCores”:8 }, “ demandResources”:{ “内存”:0, “ vCores”:0 }, “ fairResources”:{ “内存”:8192, “ vCores”:8 }, “ maxApps”:2147483647, “ maxResources”:{ “内存”:8192, “ vCores”:8 }, “ minResources”:{ “内存”:0, “ vCores”:0 }, “ pendingContainers”:0, “可抢占”:是, “ queueName”:“根”, “ reservedContainers”:0, “ schedulingPolicy”:“公平”, “ steadyFairResources”:{ “内存”:8192, “ vCores”:8 }, “ usedResources”:{ “内存”:0, “ vCores”:0 } }, “ type”:“ fairScheduler” } } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / scheduler 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:2321 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <调度程序> <schedulerInfo xmlns:xsi =“ http://www.w3.org/2001/XMLSchema-instance” xsi:type =“ fairScheduler”> <rootQueue> <maxApps> 2147483647 </ maxApps> <minResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ minResources> <maxResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ maxResources> <usedResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ usedResources> <demandResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ demandResources> <steadyFairResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ steadyFairResources> <fairResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ fairResources> <clusterResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ clusterResources> <pendingContainers> 0 </ pendingContainers> <allocatedContainers> 0 </ allocatedContainers> <reservedContainers> 0 </ reservedContainers> <queueName>根</ queueName> <schedulingPolicy>公平</ schedulingPolicy> <preemptable> true </ preemptable> <childQueues> <queue xsi:type =“ fairSchedulerLeafQueueInfo”> <maxApps> 2147483647 </ maxApps> <minResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ minResources> <maxResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ maxResources> <usedResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ usedResources> <demandResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ demandResources> <steadyFairResources> <memory> 4096 </ memory> <vCores> 0 </ vCores> </ steadyFairResources> <fairResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ fairResources> <clusterResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ clusterResources> <pendingContainers> 0 </ pendingContainers> <allocatedContainers> 0 </ allocatedContainers> <reservedContainers> 0 </ reservedContainers> <queueName> root.default </ queueName> <schedulingPolicy>公平</ schedulingPolicy> <preemptable> true </ preemptable> <numPendingApps> 0 </ numPendingApps> <numActiveApps> 0 </ numActiveApps> </ queue> <队列> <maxApps> 50 </ maxApps> <minResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ minResources> <maxResources> <memory> 8192 </ memory> <vCores> 0 </ vCores> </ maxResources> <usedResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ usedResources> <demandResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ demandResources> <steadyFairResources> <memory> 4096 </ memory> <vCores> 0 </ vCores> </ steadyFairResources> <fairResources> <memory> 10000 </ memory> <vCores> 0 </ vCores> </ fairResources> <clusterResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ clusterResources> <pendingContainers> 0 </ pendingContainers> <allocatedContainers> 0 </ allocatedContainers> <reservedContainers> 0 </ reservedContainers> <queueName> root.sample_queue </ queueName> <schedulingPolicy>公平</ schedulingPolicy> <preemptable> true </ preemptable> <childQueues> <queue xsi:type =“ fairSchedulerLeafQueueInfo”> <maxApps> 2147483647 </ maxApps> <minResources> <memory> 5000 </ memory> <vCores> 0 </ vCores> </ minResources> <maxResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ maxResources> <usedResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ usedResources> <demandResources> <memory> 0 </ memory> <vCores> 0 </ vCores> </ demandResources> <steadyFairResources> <memory> 4096 </ memory> <vCores> 0 </ vCores> </ steadyFairResources> <fairResources> <memory> 10000 </ memory> <vCores> 0 </ vCores> </ fairResources> <clusterResources> <memory> 8192 </ memory> <vCores> 8 </ vCores> </ clusterResources> <pendingContainers> 0 </ pendingContainers> <allocatedContainers> 0 </ allocatedContainers> <reservedContainers> 0 </ reservedContainers> <queueName> root.sample_queue.sample_sub_queue </ queueName> <schedulingPolicy>公平</ schedulingPolicy> <preemptable> true </ preemptable> <numPendingApps> 0 </ numPendingApps> <numActiveApps> 0 </ numActiveApps> </ queue> </ childQueues> </ queue> </ childQueues> </ rootQueue> </ schedulerInfo> </ scheduler>
使用Applications API,您可以获得资源的集合,每个资源代表一个应用程序。在此资源上运行GET操作时,将获得应用程序对象的集合。
可以为GET操作指定多个参数。开始时间和结束时间都有一个begin和end参数,以允许您指定范围。例如,可以请求在2011年12月19日凌晨1:00和下午2:00之间启动的所有应用程序,其中startedTimeBegin = 1324256400&startedTimeEnd = 1324303200。如果未指定Begin参数,则默认为0;如果未指定End参数,则默认为无穷。此api的所有查询参数将在所有应用程序上进行过滤。但是,队列查询参数只会隐式过滤给定队列中当前未完成的应用程序。
当您请求应用程序列表时,该信息将作为应用程序对象的集合返回。另请参阅应用程序API,了解应用程序对象的语法。
项目 | 数据类型 | 描述 |
---|---|---|
应用程式 | 应用程序对象数组(JSON)/零个或多个应用程序对象(XML) | 应用程序对象的集合 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / apps
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “应用”: { “应用”: [ { “ id”:“ application_1476912658570_0002”, “ user”:“ user2”, “ name”:“字数”, “ queue”:“默认”, “ state”:“完成”, “ finalStatus”:“成功”, “进度”:100, “ trackingUI”:“历史”, “ trackingUrl”:“ http://host.domain.com:8088/cluster/app/application_1476912658570_0002”, “ diagnostics”:“ ...”, “ clusterId”:1476912658570, “ applicationType”:“ MAPREDUCE”, “ applicationTags”:“”, “优先级”:-1, “ startedTime”:1476913457320, “ finishedTime”:1476913761898, “ elapsedTime”:304578, “ amContainerLogs”:“ http://host.domain.com:8042/node/containerlogs/container_1476912658570_0002_02_000001/user2”, “ amHostHttpAddress”:“ host.domain.com:8042”, “ allocatedMB”:0, “ allocatedVCores”:0, “ runningContainers”:0, “ memorySeconds”:206464, “ vcoreSeconds”:201, “ queueUsagePercentage”:0, “ clusterUsagePercentage”:0, “ preemptedResourceMB”:0, “ preemptedResourceVCores”:0, “ numNonAMContainerPreempted”:0, “ numAMContainerPreempted”:0, “ logAggregationStatus”:“ DISABLED”, “ unmanagedApplication”:否, “ appNodeLabelExpression”:“”, “ amNodeLabelExpression”:“”, “ resourceRequests”:[ { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:0 }, “ relaxLocality”:是的, “ resourceName”:“ *” }, { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:20 }, “ relaxLocality”:是的, “ resourceName”:“ host1.domain.com” }, { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:20 }, “ relaxLocality”:是的, “ resourceName”:“ host2.domain.com” }] }, { “ id”:“ application_1476912658570_0001”, “ user”:“ user1”, “ name”:“睡眠工作”, “ queue”:“默认”, “ state”:“完成”, “ finalStatus”:“成功”, “进度”:100, “ trackingUI”:“历史”, “ trackingUrl”:“ http://host.domain.com:8088/cluster/app/application_1476912658570_0001”, “ diagnostics”:“ ...”, “ clusterId”:1476912658570, “ applicationType”:“ YARN”, “ applicationTags”:“”, “优先级”:-1, “ startedTime”:1476913464750, “ finishedTime”:1476913863175, “ elapsedTime”:398425, “ amContainerLogs”:“ http://host.domain.com:8042/node/containerlogs/container_1476912658570_0001_02_000001/user1”, “ amHostHttpAddress”:“ host.domain.com:8042”, “ allocatedMB”:0, “ allocatedVCores”:0, “ runningContainers”:0, “ memorySeconds”:205410, “ vcoreSeconds”:200, “ queueUsagePercentage”:0, “ clusterUsagePercentage”:0, “ preemptedResourceMB”:0, “ preemptedResourceVCores”:0, “ numNonAMContainerPreempted”:0, “ numAMContainerPreempted”:0, “ logAggregationStatus”:“ DISABLED”, “ unmanagedApplication”:否, “ appNodeLabelExpression”:“”, “ amNodeLabelExpression”:“”, “ resourceRequests”:[ { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:0 }, “ relaxLocality”:是的, “ resourceName”:“ *” }, { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:20 }, “ relaxLocality”:是的, “ resourceName”:“ host3.domain.com” }, { “功能”:{ “内存”:4096, “ virtualCores”:1 }, “ nodeLabelExpression”:“”, “ numContainers”:0, “优先”: { “优先级”:20 }, “ relaxLocality”:是的, “ resourceName”:“ host4.domain.com” }] } ] } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / apps 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:2459 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <apps> <app> <id> application_1476912658570_0002 </ id> <user> user2 </ user> <name>字数</ name> <queue>默认</ queue> <state>完成</ state> <finalStatus>成功</ finalStatus> <progress> 100.0 </ progress> <trackingUI>历史记录</ trackingUI> <trackingUrl> http://host.domain.com:8088/cluster/app/application_1476912658570_0002 </ trackingUrl> <diagnostics> ... </ diagnostics> <clusterId> 1476912658570 </ clusterId> <applicationType> YARN </ applicationType> <applicationTags> </ applicationTags> <priority> -1 </ priority> <startedTime> 1476913457320 </ startedTime> <finishedTime> 1476913761898 </ finishedTime> <elapsedTime> 304578 </ elapsedTime> <amContainerLogs> http://host.domain.com:8042/node/containerlogs/container_1476912658570_0002_02_000001/user2 </ amContainerLogs> <amHostHttpAddress> host.domain.com:8042 </ amHostHttpAddress> <allocatedMB> -1 </ allocatedMB> <allocatedVCores> -1 </ allocatedVCores> <runningContainers> -1 </ runningContainers> <memorySeconds> 206464 </ memorySeconds> <vcoreSeconds> 201 </ vcoreSeconds> <queueUsagePercentage> 0.0 </ queueUsagePercentage> <clusterUsagePercentage> 0.0 </ clusterUsagePercentage> <preemptedResourceMB> 0 </ preemptedResourceMB> <preemptedResourceVCores> 0 </ preemptedResourceVCores> <numNonAMContainerPreempted> 0 </ numNonAMContainerPreempted> <numAMContainerPreempted> 0 </ numAMContainerPreempted> <logAggregationStatus>已禁用</ logAggregationStatus> <unmanagedApplication> false </ unmanagedApplication> <appNodeLabelExpression> </ appNodeLabelExpression> <amNodeLabelExpression> </ amNodeLabelExpression> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 0 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> * </ resourceName> </ resourceRequests> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 20 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> host1.domain.com </ resourceName> </ resourceRequests> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 20 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> host2.domain.com </ resourceName> </ resourceRequests> </ app> <app> <id> application_1476912658570_0001 </ id> <user> user1 </ user> <name>睡眠作业</ name> <queue>默认</ queue> <state>完成</ state> <finalStatus>成功</ finalStatus> <progress> 100.0 </ progress> <trackingUI>历史记录</ trackingUI> <trackingUrl> http://host.domain.com:8088/cluster/app/application_1476912658570_0001 </ trackingUrl> <diagnostics> ... </ diagnostics> <clusterId> 1476912658570 </ clusterId> <applicationType> YARN </ applicationType> <applicationTags> </ applicationTags> <priority> -1 </ priority> <startedTime> 1476913464750 </ startedTime> <finishedTime> 1476913863175 </ finishedTime> <elapsedTime> 398425 </ elapsedTime> <amContainerLogs> http://host.domain.com:8042/node/containerlogs/container_1476912658570_0001_02_000001/user1 </ amContainerLogs> <amHostHttpAddress> host.domain.com:8042 </ amHostHttpAddress> <allocatedMB> -1 </ allocatedMB> <allocatedVCores> -1 </ allocatedVCores> <runningContainers> -1 </ runningContainers> <memorySeconds> 205410 </ memorySeconds> <vcoreSeconds> 200 </ vcoreSeconds> <queueUsagePercentage> 0.0 </ queueUsagePercentage> <clusterUsagePercentage> 0.0 </ clusterUsagePercentage> <preemptedResourceMB> 0 </ preemptedResourceMB> <preemptedResourceVCores> 0 </ preemptedResourceVCores> <numNonAMContainerPreempted> 0 </ numNonAMContainerPreempted> <numAMContainerPreempted> 0 </ numAMContainerPreempted> <logAggregationStatus>已禁用</ logAggregationStatus> <unmanagedApplication> false </ unmanagedApplication> <appNodeLabelExpression> </ appNodeLabelExpression> <amNodeLabelExpression> </ amNodeLabelExpression> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 0 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> * </ resourceName> </ resourceRequests> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 20 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> host1.domain.com </ resourceName> </ resourceRequests> <resourceRequests> <能力> <memory> 4096 </ memory> <virtualCores> 1 </ virtualCores> </ capability> <nodeLabelExpression /> <numContainers> 0 </ numContainers> <优先级> <priority> 20 </ priority> </ priority> <relaxLocality> true </ relaxLocality> <resourceName> host2.domain.com </ resourceName> </ resourceRequests> </ app> </ apps>
使用Application Statistics API,您可以获得三元组的集合,每个三元组都包含应用程序类型,应用程序状态以及ResourceManager上下文中这种类型的应用程序数和该状态。请注意,出于性能方面的考虑,我们目前每个查询最多仅支持一种applicationType。我们可能会在每个查询中支持多种applicationType,以及将来的更多统计信息。在此资源上运行GET操作时,将获得statItem对象的集合。
可以指定两个参数。参数不区分大小写。
当您请求统计信息列表时,信息将作为statItem对象的集合返回
项目 | 数据类型 | 描述 |
---|---|---|
statItem | statItem对象(JSON)/零个或多个statItem对象(XML)的数组 | statItem对象的集合 |
JSON回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / appstatistics?states = accepted,running,finished&applicationTypes = mapreduce
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ appStatInfo”: { “ statItem”: [ { “ state”:“ accepted”, “ type”:“ mapreduce”, “计数”:4 }, { “ state”:“正在运行”, “ type”:“ mapreduce”, “计数”:1 }, { “ state”:“完成”, “ type”:“ mapreduce”, “计数”:7 } ] } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / appstatistics?states = accepted,running,finished&applicationTypes = mapreduce 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:2459 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appStatInfo> <statItem> <state>已接受</ state> <type> mapreduce </ type> <count> 4 </ count> </ statItem> <statItem> <状态>运行</状态> <type> mapreduce </ type> <count> 1 </ count> </ statItem> <statItem> <state>完成</ state> <type> mapreduce </ type> <count> 7 </ count> </ statItem> </ appStatInfo>
应用程序资源包含有关已提交到集群的特定应用程序的信息。
请注意,根据安全设置,用户可能无法看到所有字段。
项目 | 数据类型 | 描述 |
---|---|---|
ID | 串 | 申请编号 |
用户 | 串 | 启动应用程序的用户 |
名称 | 串 | 应用名称 |
队列 | 串 | 应用程序提交到的队列 |
州 | 串 | 根据ResourceManager的应用程序状态-有效值是YarnApplicationState枚举的成员:NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED |
finalStatus | 串 | 如果已完成,则应用程序的最终状态-由应用程序本身报告-有效值是FinalApplicationStatus枚举的成员:UNDEFINED,SUCCEEDED,FAILED,KILLED |
进展 | 浮动 | 应用进度百分比 |
trackingUI | 串 | 跟踪网址当前指向的位置-历史记录(用于历史记录服务器)或ApplicationMaster |
trackingUrl | 串 | 可用于跟踪应用程序的Web URL |
诊断 | 串 | 详细的诊断信息 |
clusterId | 长 | 集群ID |
申请类型 | 串 | 申请类型 |
applicationTags | 串 | 应用程序的逗号分隔标签 |
优先 | 串 | 提交申请的优先权 |
开始时间 | 长 | 应用程序启动的时间(从纪元开始以毫秒为单位) |
完成时间 | 长 | 应用程序完成的时间(自纪元以来以毫秒为单位) |
经过时间 | 长 | 自应用程序启动以来经过的时间(以毫秒为单位) |
amContainerLogs | 串 | 应用程序主容器日志的URL |
amHostHttpAddress | 串 | 应用程序主机的节点http地址 |
amRPCAddress | 串 | 应用程序主机的RPC地址 |
分配的MB | 整型 | 分配给应用程序运行容器的内存总和(以MB为单位) |
分配的VCore | 整型 | 分配给应用程序运行容器的虚拟核的总和 |
runningContainers | 整型 | 该应用程序当前正在运行的容器数 |
记忆秒 | 长 | 应用程序已分配的内存量(兆秒) |
vcoreSeconds | 长 | 应用程序已分配的CPU资源量(虚拟核心秒) |
queueUsagePercentage | 浮动 | 应用程序正在使用的队列资源的百分比 |
clusterUsagePercentage | 浮动 | 应用程序正在使用的群集资源的百分比。 |
preemptedResourceMB | 长 | 抢占式容器使用的内存 |
preemptedResourceVCores | 长 | 抢占式容器使用的虚拟核心数 |
numNonAMContainerPreempted | 整型 | 抢占标准集装箱数 |
numAMContainerPreempted | 整型 | 已抢占的应用程序主容器数 |
logAggregationStatus | 串 | 日志聚合状态-有效值是LogAggregationStatus枚举的成员:DISABLED,NOT_START,RUNNING,RUNNING_WITH_FAILURE,SUCCEEDED,FAILED,TIME_OUT |
非托管应用 | 布尔值 | 应用程序不受管理吗? |
appNodeLabelExpression | 串 | 节点标签表达式,用于标识默认情况下应在其上运行应用程序容器的节点。 |
amNodeLabelExpression | 串 | 节点标签表达式,用于标识预期在其上运行应用程序的AM容器的节点。 |
JSON回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1476912658570_0002
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ app”:{ “ id”:“ application_1476912658570_0002”, “ user”:“ user2”, “ name”:“字数”, “ queue”:“默认”, “ state”:“完成”, “ finalStatus”:“成功”, “进度”:100, “ trackingUI”:“历史”, “ trackingUrl”:“ http://host.domain.com:8088/cluster/app/application_1476912658570_0002”, “ diagnostics”:“ ...”, “ clusterId”:1476912658570, “ applicationType”:“ YARN”, “ applicationTags”:“”, “优先级”:-1, “ startedTime”:1476913457320, “ finishedTime”:1476913761898, “ elapsedTime”:304578, “ amContainerLogs”:“ http://host.domain.com:8042/node/containerlogs/container_1476912658570_0002_02_000001/dr.who”, “ amHostHttpAddress”:“ host.domain.com:8042”, “ allocatedMB”:-1, “ allocatedVCores”:-1, “ runningContainers”:-1, “ memorySeconds”:206464, “ vcoreSeconds”:201, “ queueUsagePercentage”:0, “ clusterUsagePercentage”:0, “ preemptedResourceMB”:0, “ preemptedResourceVCores”:0, “ numNonAMContainerPreempted”:0, “ numAMContainerPreempted”:0, “ logAggregationStatus”:“ DISABLED”, “ unmanagedApplication”:否, “ appNodeLabelExpression”:“”, “ amNodeLabelExpression”:“” } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1326821518301_0005 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:847 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <app> <id> application_1476912658570_0002 </ id> <user> user2 </ user> <name>字数</ name> <queue>默认</ queue> <state>完成</ state> <finalStatus>成功</ finalStatus> <progress> 100.0 </ progress> <trackingUI>历史记录</ trackingUI> <trackingUrl> http://host.domain.com:8088/cluster/app/application_1476912658570_0002 </ trackingUrl> <diagnostics> ... </ diagnostics> <clusterId> 1476912658570 </ clusterId> <applicationType> YARN </ applicationType> <applicationTags> </ applicationTags> <priority> -1 </ priority> <startedTime> 1476913457320 </ startedTime> <finishedTime> 1476913761898 </ finishedTime> <elapsedTime> 304578 </ elapsedTime> <amContainerLogs> http://host.domain.com:8042/node/containerlogs/container_1476912658570_0002_02_000001/dr.who </ amContainerLogs> <amHostHttpAddress> host.domain.com:8042 </ amHostHttpAddress> <allocatedMB> -1 </ allocatedMB> <allocatedVCores> -1 </ allocatedVCores> <runningContainers> -1 </ runningContainers> <memorySeconds> 206464 </ memorySeconds> <vcoreSeconds> 201 </ vcoreSeconds> <queueUsagePercentage> 0.0 </ queueUsagePercentage> <clusterUsagePercentage> 0.0 </ clusterUsagePercentage> <preemptedResourceMB> 0 </ preemptedResourceMB> <preemptedResourceVCores> 0 </ preemptedResourceVCores> <numNonAMContainerPreempted> 0 </ numNonAMContainerPreempted> <numAMContainerPreempted> 0 </ numAMContainerPreempted> <logAggregationStatus>已禁用</ logAggregationStatus> <unmanagedApplication> false </ unmanagedApplication> <appNodeLabelExpression> </ appNodeLabelExpression> <amNodeLabelExpression> </ amNodeLabelExpression> </ app>
使用应用程序尝试API,您可以获得代表应用程序尝试的资源的集合。在此资源上运行GET操作时,将获得App Attempt对象的集合。
当您请求应用尝试列表时,该信息将作为应用尝试对象数组返回。
appAttempts:
项目 | 数据类型 | 描述 |
---|---|---|
appAttempt | 应用尝试对象的数组(JSON)/零个或多个应用尝试对象的XML | 应用尝试对象的集合 |
项目 | 数据类型 | 描述 |
---|---|---|
ID | 串 | 应用尝试ID |
nodeId | 串 | 尝试运行的节点的节点ID |
nodeHttpAddress | 串 | 尝试运行的节点的节点http地址 |
logsLink | 串 | 应用程序尝试日志的http链接 |
containerId | 串 | 应用尝试容器的ID |
开始时间 | 长 | 尝试的开始时间(自纪元以来以毫秒为单位) |
JSON回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1326821518301_0005 / appattempts
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ appAttempts”:{ “ appAttempt”:[ { “ nodeId”:“ host.domain.com:8041”, “ nodeHttpAddress”:“ host.domain.com:8042”, “ startTime”:1326381444693, “ id”:1 “ logsLink”:“ http://host.domain.com:8042/node/containerlogs/container_1326821518301_0005_01_000001/user1”, “ containerId”:“ container_1326821518301_0005_01_000001” } ] } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1326821518301_0005 / appattempts 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:575 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appAttempts> <appttempt> <nodeHttpAddress> host.domain.com:8042 </ nodeHttpAddress> <nodeId> host.domain.com:8041 </ nodeId> <id> 1 </ id> <startTime> 1326381444693 </ startTime> <containerId> container_1326821518301_0005_01_000001 </ containerId> <logsLink> http://host.domain.com:8042/node/containerlogs/container_1326821518301_0005_01_000001/user1 </ logsLink> </ appAttempt> </ appAttempts>
使用用于Application Attempt API的容器,您可以获得属于Application Attempt的容器列表。
项目 | 数据类型 | 描述 | |
---|---|---|---|
containerId | 串 | 容器编号 | |
分配的MB | 长 | 为容器分配的内存量,以MB为单位 | |
分配的VCore | 整型 | 为容器分配的虚拟核心数量 | |
AssignedNodeId | 串 | 尝试运行的节点的节点ID | |
优先 | 整型 | 容器的分配优先级 | |
开始时间 | 长 | 尝试的开始时间(自纪元以来以毫秒为单位) | |
完成时间 | 长 | 尝试的完成时间(自纪元以来以毫秒为单位)(如果未完成) | |
经过时间 | 长 | 自启动时间以来经过的时间(以毫秒为单位) | |
logUrl | 串 | 可用于检查容器日志的Web URL | |
containerExitStatus | 整型 | 容器的最终出口状态 | |
containerState | 串 | 容器的状态,可以是NEW,RUNNING或COMPLETE | |
nodeHttpAddress | 串 | 尝试运行的节点的节点http地址 | |
nodeId | 串 | 尝试运行的节点的节点ID | |
locatedResources | 资源数组(JSON)/零个或多个资源对象(XML) | 容器分配的资源 |
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 容器的最大内存 |
虚拟核心 | 整型 | 容器的最大vcores数 |
JSON回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / appattempts / {appAttemptId} / containers
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “容器”:{ “容器”: [ { “ containerId”:“ container_1531404209605_0008_01_000001”, “ allocatedMB”:“ 1536”, “ allocatedVCores”:“ 1”, “ assignedNodeId”:“ host.domain.com:37814”, “优先级”:“ 0”, “ startedTime”:“ 1531405909444”, “ finishedTime”:“ 0”, “ elapsedTime”:“ 4112”, “ logUrl”:“ http://host.domain.com:8042/node/containerlogs/container_1531404209605_0008_01_000001/systest”, “ containerExitStatus”:“ 0”, “ containerState”:“ RUNNING”, “ nodeHttpAddress”:“ http://host.domain.com:8042”, “ nodeId”:“ host.domain.com:37814”, “ allocatedResources”:[ { “ key”:“ memory-mb”, “值”:“ 1536” }, { “ key”:“ vcores”, “值”:“ 1” } ] } ] } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / appattempts / {appAttemptId} / containers 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:1104 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <容器> <容器> <containerId> container_1531404209605_0008_01_000001 </ containerId> <allocatedMB> 1536 </ allocatedMB> <allocatedVCores> 1 </ allocatedVCores> <assignedNodeId> host.domain.com:37814 </ assignedNodeId> <priority> 0 </ priority> <startedTime> 1531405909444 </ startedTime> <finishedTime> 0 </ finishedTime> <elapsedTime> 4112 </ elapsedTime> <logUrl> http://host.domain.com:8042/node/containerlogs/container_1531404209605_0008_01_000001/systest </ logUrl> <containerExitStatus> 0 </ containerExitStatus> <containerState>运行中</ containerState> <nodeHttpAddress> http://host.domain.com:8042 </ nodeHttpAddress> <nodeId> host.domain.com:37814 </ nodeId> <allocatedResources> <条目> <key> memory-mb </ key> <value> 1536 </ value> </ entry> <条目> <key> vcores </ key> <value> 1 </ value> </ entry> </ allocatedResources> </ container> </容器>
使用“针对应用程序尝试的API的特定容器”,您可以获得有关特定容器的信息,该信息属于“应用程序尝试”并由容器ID选择。
项目 | 数据类型 | 描述 | |
---|---|---|---|
containerId | 串 | 容器编号 | |
分配的MB | 长 | 为容器分配的内存量,以MB为单位 | |
分配的VCore | 整型 | 为容器分配的虚拟核心数量 | |
AssignedNodeId | 串 | 尝试运行的节点的节点ID | |
优先 | 整型 | 容器的分配优先级 | |
开始时间 | 长 | 尝试的开始时间(自纪元以来以毫秒为单位) | |
完成时间 | 长 | 尝试的完成时间(自纪元以来以毫秒为单位)(如果未完成) | |
经过时间 | 长 | 自启动时间以来经过的时间(以毫秒为单位) | |
logUrl | 串 | 可用于检查容器日志的Web URL | |
containerExitStatus | 整型 | 容器的最终出口状态 | |
containerState | 串 | 容器的状态,可以是NEW,RUNNING或COMPLETE | |
nodeHttpAddress | 串 | 尝试运行的节点的节点http地址 | |
nodeId | 串 | 尝试运行的节点的节点ID | |
locatedResources | 资源数组(JSON)/零个或多个资源对象(XML) | 容器分配的资源 |
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 容器的最大内存 |
虚拟核心 | 整型 | 容器的最大vcores数 |
JSON回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / appattempts / {appAttemptId} / containers / {containerId}
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “容器”: { “ containerId”:“ container_1531404209605_0008_01_000001”, “ allocatedMB”:“ 1536”, “ allocatedVCores”:“ 1”, “ assignedNodeId”:“ host.domain.com:37814”, “优先级”:“ 0”, “ startedTime”:“ 1531405909444”, “ finishedTime”:“ 0”, “ elapsedTime”:“ 4112”, “ logUrl”:“ http://host.domain.com:8042/node/containerlogs/container_1531404209605_0008_01_000001/systest”, “ containerExitStatus”:“ 0”, “ containerState”:“ RUNNING”, “ nodeHttpAddress”:“ http://host.domain.com:8042”, “ nodeId”:“ host.domain.com:37814”, “ allocatedResources”:[ { “ key”:“ memory-mb”, “值”:“ 1536” }, { “ key”:“ vcores”, “值”:“ 1” } ] } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / appattempts / {appAttemptId} / containers / {containerId} 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:1104 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <容器> <containerId> container_1531404209605_0008_01_000001 </ containerId> <allocatedMB> 1536 </ allocatedMB> <allocatedVCores> 1 </ allocatedVCores> <assignedNodeId> host.domain.com:37814 </ assignedNodeId> <priority> 0 </ priority> <startedTime> 1531405909444 </ startedTime> <finishedTime> 0 </ finishedTime> <elapsedTime> 4112 </ elapsedTime> <logUrl> http://host.domain.com:8042/node/containerlogs/container_1531404209605_0008_01_000001/systest </ logUrl> <containerExitStatus> 0 </ containerExitStatus> <containerState>运行中</ containerState> <nodeHttpAddress> http://host.domain.com:8042 </ nodeHttpAddress> <nodeId> host.domain.com:37814 </ nodeId> <allocatedResources> <条目> <key> memory-mb </ key> <value> 1536 </ value> </ entry> <条目> <key> vcores </ key> <value> 1 </ value> </ entry> </ allocatedResources> </ container>
使用Nodes API,您可以获得资源的集合,每个资源代表一个节点。在此资源上运行GET操作时,将获得节点对象的集合。
当您请求节点列表时,该信息将作为节点对象的集合返回。另请参见Node API,以获取节点对象的语法。
项目 | 数据类型 | 描述 |
---|---|---|
节点 | 节点对象数组(JSON)/零个或多个节点对象(XML) | 节点对象的集合 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / nodes
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “节点”: { “节点”: [ { “ rack”:“ \ / default-rack”, “ state”:“ RUNNING”, “ id”:“ host.domain.com:54158”, “ nodeHostName”:“ host.domain.com”, “ nodeHTTPAddress”:“ host.domain.com:8042”, “ lastHealthUpdate”:1476995346399, “ version”:“ 3.0.0-alpha2-SNAPSHOT”, “ healthReport”:“”, “ numContainers”:0, “ usedMemoryMB”:0, “ availMemoryMB”:8192, “ usedVirtualCores”:0, “ availableVirtualCores”:8, “资源利用率”: { “ nodePhysicalMemoryMB”:1027, “ nodeVirtualMemoryMB”:1027, “ nodeCPUUsage”:0.016661113128066063, “ aggregatedContainersPhysicalMemoryMB”:0, “ aggregatedContainersVirtualMemoryMB”:0, “ containersCPUUsage”:0 } }, { “ rack”:“ \ / default-rack”, “ state”:“ RUNNING”, “ id”:“ host.domain.com:54158”, “ nodeHostName”:“ host.domain.com”, “ nodeHTTPAddress”:“ host.domain.com:8042”, “ lastHealthUpdate”:1476995346399, “ version”:“ 3.0.0-alpha2-SNAPSHOT”, “ healthReport”:“”, “ numContainers”:0, “ usedMemoryMB”:0, “ availMemoryMB”:8192, “ usedVirtualCores”:0, “ availableVirtualCores”:8, “资源利用率”: { “ nodePhysicalMemoryMB”:1027, “ nodeVirtualMemoryMB”:1027, “ nodeCPUUsage”:0.016661113128066063, “ aggregatedContainersPhysicalMemoryMB”:0, “ aggregatedContainersVirtualMemoryMB”:0, “ containersCPUUsage”:0 } } ] } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / nodes 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:1104 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <节点> <节点> <rack> / default-rack </ rack> <状态>运行中</状态> <id> host1.domain.com:54158 </ id> <nodeHostName> host1.domain.com </ nodeHostName> <nodeHTTPAddress> host1.domain.com:8042 </ nodeHTTPAddress> <lastHealthUpdate> 1476995346399 </ lastHealthUpdate> <version> 3.0.0-SNAPSHOT </ version> <healthReport> </ healthReport> <numContainers> 0 </ numContainers> <usedMemoryMB> 0 </ usedMemoryMB> <availMemoryMB> 8192 </ availMemoryMB> <usedVirtualCores> 0 </ usedVirtualCores> <availableVirtualCores> 8 </ availableVirtualCores> <resourceUtilization> <nodePhysicalMemoryMB> 1027 </ nodePhysicalMemoryMB> <nodeVirtualMemoryMB> 1027 </ nodeVirtualMemoryMB> <nodeCPUUsage> 0.006664445623755455 </ nodeCPUUsage> <aggregatedContainersPhysicalMemoryMB> 0 </ aggregatedContainersPhysicalMemoryMB> <aggregatedContainersVirtualMemoryMB> 0 </ aggregatedContainersVirtualMemoryMB> <containersCPUUsage> 0.0 </ containersCPUUsage> </ resourceUtilization> </ node> <节点> <rack> / default-rack </ rack> <状态>运行中</状态> <id> host2.domain.com:54158 </ id> <nodeHostName> host2.domain.com </ nodeHostName> <nodeHTTPAddress> host2.domain.com:8042 </ nodeHTTPAddress> <lastHealthUpdate> 1476995346399 </ lastHealthUpdate> <version> 3.0.0-SNAPSHOT </ version> <healthReport> </ healthReport> <numContainers> 0 </ numContainers> <usedMemoryMB> 0 </ usedMemoryMB> <availMemoryMB> 8192 </ availMemoryMB> <usedVirtualCores> 0 </ usedVirtualCores> <availableVirtualCores> 8 </ availableVirtualCores> <resourceUtilization> <nodePhysicalMemoryMB> 1027 </ nodePhysicalMemoryMB> <nodeVirtualMemoryMB> 1027 </ nodeVirtualMemoryMB> <nodeCPUUsage> 0.006664445623755455 </ nodeCPUUsage> <aggregatedContainersPhysicalMemoryMB> 0 </ aggregatedContainersPhysicalMemoryMB> <aggregatedContainersVirtualMemoryMB> 0 </ aggregatedContainersVirtualMemoryMB> <containersCPUUsage> 0.0 </ containersCPUUsage> </ resourceUtilization> </ node> </ nodes>
节点资源包含有关集群中节点的信息。
项目 | 数据类型 | 描述 |
---|---|---|
架 | 串 | 该节点的机架位置 |
州 | 串 | 节点的状态-有效值为:NEW,RUNNING,UNHEALTHY,DECOMMISSIONING,DECOMMISSIONED,LOST,REBOOTED,SHUTDOWN |
ID | 串 | 节点ID |
nodeHostName | 串 | 节点的主机名 |
nodeHTTPAddress | 串 | 节点HTTP地址 |
lastHealthUpdate | 长 | 节点上次报告其运行状况的时间(自纪元以来,以毫秒为单位) |
版 | 串 | 在节点上运行的hadoop版本 |
健康报告 | 串 | 详细的健康报告 |
numContainers | 整型 | 当前在节点上运行的容器总数 |
usedMemoryMB | 长 | 当前节点上使用的内存总量(以MB为单位) |
availMemoryMB | 长 | 节点上当前可用的内存总量(以MB为单位) |
用过的VirtualCores | 长 | 节点上当前使用的vCore总数 |
availableVirtualCores | 长 | 节点上可用的vCore总数 |
资源利用率 | 宾语 | 节点上的资源利用率 |
所述resourceUtilization对象包含下列元素:
项目 | 数据类型 | 描述 |
---|---|---|
nodePhysicalMemoryMB | 整型 | 节点物理内存利用率 |
nodeVirtualMemoryMB | 整型 | 节点虚拟内存利用率 |
nodeCPU的使用率 | 双 | 节点CPU利用率 |
聚合容器物理内存MB | 整型 | 容器的汇总物理内存利用率 |
AggregatedContainersVirtualMemoryMB | 整型 | 容器的聚合虚拟内存利用率 |
containerCPU使用率 | 双 | 容器的总CPU使用率 |
JSON回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / nodes / h2:1235
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “节点”: { “ rack”:“ \ / default-rack”, “ state”:“ RUNNING”, “ id”:“ host.domain.com:54158”, “ nodeHostName”:“ host.domain.com”, “ nodeHTTPAddress”:“ host.domain.com:8042”, “ lastHealthUpdate”:1476916746399, “ version”:“ 3.0.0-SNAPSHOT”, “ healthReport”:“”, “ numContainers”:0, “ usedMemoryMB”:0, “ availMemoryMB”:8192, “ usedVirtualCores”:0, “ availableVirtualCores”:8, “资源利用率”: { “ nodePhysicalMemoryMB”:968, “ nodeVirtualMemoryMB”:968, “ nodeCPUUsage”:0.01332889124751091, “ aggregatedContainersPhysicalMemoryMB”:0, “ aggregatedContainersVirtualMemoryMB”:0, “ containersCPUUsage”:0 } } }
XML回应
HTTP请求:
获取http:// rm-http-address:port / ws / v1 / cluster / node / h2:1235 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:552 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <节点> <rack> / default-rack </ rack> <状态>运行中</状态> <id> host.domain.com:54158 </ id> <nodeHostName> host.domain.com </ nodeHostName> <nodeHTTPAddress> host.domain.com:8042 </ nodeHTTPAddress> <lastHealthUpdate> 1476916746399 </ lastHealthUpdate> <version> 3.0.0-SNAPSHOT </ version> <healthReport> </ healthReport> <numContainers> 0 </ numContainers> <usedMemoryMB> 0 </ usedMemoryMB> <availMemoryMB> 8192 </ availMemoryMB> <usedVirtualCores> 0 </ usedVirtualCores> <availableVirtualCores> 8 </ availableVirtualCores> <resourceUtilization> <nodePhysicalMemoryMB> 968 </ nodePhysicalMemoryMB> <nodeVirtualMemoryMB> 968 </ nodeVirtualMemoryMB> <nodeCPUUsage> 0.01332889124751091 </ nodeCPUUsage> <aggregatedContainersPhysicalMemoryMB> 0 </ aggregatedContainersPhysicalMemoryMB> <aggregatedContainersVirtualMemoryMB> 0 </ aggregatedContainersVirtualMemoryMB> <containersCPUUsage> 0.0 </ containersCPUUsage> </ resourceUtilization> </ node>
使用新应用程序API,您可以获取一个应用程序ID,该ID可以用作集群提交应用程序API的一部分来提交应用程序。该响应还包括群集上可用的最大资源能力。
此功能目前处于Alpha阶段,将来可能会更改。
NewApplication响应包含以下元素:
项目 | 数据类型 | 描述 |
---|---|---|
应用程式编号 | 串 | 新创建的应用程序ID |
最大资源能力 | 宾语 | 该群集上可用的最大资源功能 |
的最大资源capabilites对象包含以下元素:
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 容器可用的最大内存 |
虚拟核心 | 整型 | 容器可用的最大核心数 |
JSON回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / apps / new-application
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ application-id”:“ application_1404198295326_0003”, “最大资源能力”: { “内存”:8192, “ vCores”:32 } }
XML回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / apps / new-application
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:248 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <NewApplication> <application-id> application_1404198295326_0003 </ application-id> <最大资源能力> <memory> 8192 </ memory> <vCores> 32 </ vCores> </ maximum-resource-capability> </ NewApplication>
提交应用程序API可用于提交应用程序。如果提交申请,则必须首先使用Cluster New Application API获得一个应用程序ID 。应用程序ID必须是请求正文的一部分。响应包含指向应用程序页面的URL,可用于跟踪应用程序的状态和进度。
POST请求可用于将应用程序提交到ResourceManager。如上所述,必须先获取一个应用程序ID。成功提交会产生202响应代码和Location标头,用于指定从何处获取有关该应用程序的信息。请注意,要提交应用,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
请注意,此功能目前处于Alpha阶段,将来可能会更改。
项目 | 数据类型 | 描述 |
---|---|---|
应用程式编号 | 串 | 申请编号 |
应用名称 | 串 | 应用名称 |
队列 | 串 | 应将应用程序提交到的队列的名称 |
优先 | 整型 | 应用程序的优先级 |
容器规格 | 宾语 | 应用程序主容器启动上下文,如下所述 |
非托管AM | 布尔值 | 该应用程序是否使用非托管应用程序主机 |
最大应用尝试 | 整型 | 此应用程序的最大尝试次数 |
资源 | 宾语 | 应用程序主机需要的资源,如下所述 |
申请类型 | 串 | 应用程序类型(MapReduce,Pig,Hive等) |
保持容器跨应用程序的尝试 | 布尔值 | YARN是否应保留此应用程序使用的容器而不是销毁它们 |
应用标签 | 宾语 | 应用程序标签列表,请参阅有关如何指定标签的请求示例 |
日志聚合上下文 | 宾语 | 表示NodeManager处理此应用程序日志所需的所有信息 |
尝试失败有效性间隔 | 长 | 故障编号将不会发生任何超出validationInterval的尝试失败 |
预订编号 | 串 | 表示调度程序中相应预留资源分配的唯一ID |
黑名单要求 | 宾语 | 包含黑名单信息,例如“启用/禁用AM黑名单”和“禁用失败阈值” |
am-container-spec对象的元素
应该使用am-container-spec对象为应用程序主机提供容器启动上下文。
项目 | 数据类型 | 描述 |
---|---|---|
本地资源 | 宾语 | 描述需要本地化的资源的对象,如下所述 |
环境 | 宾语 | 容器的环境变量,指定为键值对 |
命令 | 宾语 | 用于启动容器的命令(应按执行顺序) |
服务数据 | 宾语 | 专用服务数据;key是辅助服务的名称,值是您希望传递的数据的base-64编码 |
证书 | 宾语 | 应用程序运行所需的凭据,如下所述 |
应用程序 | 对象 | 您的应用程序的ACL;密钥可以是“ VIEW_APP”或“ MODIFY_APP”,值是具有权限的用户列表 |
本地资源对象的元素
该对象是键值对的集合。它们的键是要本地化的资源的标识符,而值是资源的详细信息。该值的元素如下所述:
项目 | 数据类型 | 描述 |
---|---|---|
资源 | 串 | 要本地化的资源的位置 |
类型 | 串 | 资源类型;选项是“ ARCHIVE”,“ FILE”和“ PATTERN” |
能见度 | 串 | 可见要本地化的资源;选项为“公共”,“私人”和“应用” |
尺寸 | 长 | 要本地化的资源大小 |
时间戳记 | 长 | 要本地化的资源的时间戳 |
凭证对象的元素
凭据对象应用于传递应用程序进行身份验证所需的数据,例如委托令牌和机密。
项目 | 数据类型 | 描述 |
---|---|---|
代币 | 宾语 | 您希望传递给应用程序的令牌,指定为键值对。密钥是令牌的标识符,值是令牌(应使用相应的Web服务获取) |
机密 | 宾语 | 您希望在应用程序中使用的机密,指定为键值对。它们的密钥是标识符,值是密钥的base-64编码 |
POST请求主体资源对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 每个容器所需的内存 |
虚拟核心 | 整型 | 每个容器所需的虚拟核心 |
POST请求正文日志聚合上下文对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
日志包含模式 | 串 | 申请完成后,将上传与定义的包含模式匹配的日志文件 |
对数排除模式 | 串 | 申请完成后,将不会上传与定义的排除模式匹配的日志文件 |
滚动日志包含模式 | 串 | 与定义的包含模式匹配的日志文件将以滚动方式聚合 |
滚动日志排除模式 | 串 | 与定义的排除模式匹配的日志文件将不会滚动汇总 |
日志聚合策略类名称 | 串 | NodeManager将用于聚合日志的策略 |
日志聚合策略参数 | 串 | 传递给策略类的参数 |
POST请求正文am-black-listing-requests对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
已启用黑名单 | 布尔值 | 是否启用AM黑名单 |
禁用失败阈值 | 浮动 | AM黑名单禁用失败阈值 |
JSON回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / apps 接受:application / json 内容类型:application / json { “ application-id”:“ application_1404203615263_0001”, “ application-name”:“ test”, “ am-container-spec”: { “本地资源”: { “条目”: [ { “ key”:“ AppMaster.jar”, “值”: { “资源”:“ hdfs:// hdfs-namenode:9000 / user / testuser / DistributedShell / demo-app / AppMaster.jar”, “ type”:“ FILE”, “ visibility”:“ APPLICATION”, “大小”:43004, “时间戳记”:1405452071209 } } ] }, “命令”: { “ command”:“ {{JAVA_HOME}} / bin / java -Xmx10m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 10 --container_vcores 1 --num_containers 1 --priority 0 1> <LOG_DIR> /AppMaster.stdout 2> <LOG_DIR> /AppMaster.stderr” }, “环境”: { “条目”: [ { “ key”:“ DISTRIBUTEDSHELLSCRIPTTIMESTAMP”, “值”:“ 1405459400754” }, { “ key”:“ CLASSPATH”, “ value”:“ {{CLASSPATH}} <CPS>。/*<CPS> {{HADOOP_CONF_DIR}} <CPS> {{HADOOP_COMMON_HOME}} / share / hadoop / common / * <CPS> {{HADOOP_COMMON_HOME}} / share / hadoop / common / lib / * <CPS> {{HADOOP_HDFS_HOME}} / share / hadoop / hdfs / * <CPS> {{HADOOP_HDFS_HOME}} / share / hadoop / hdfs / lib / * <CPS> {{HADOOP_YARN_HOME}} /share/hadoop/yarn/*<CPS>{{HADOOP_YARN_HOME}}/share/hadoop/yarn/lib/*<CPS>。/log4j.properties” }, { “ key”:“ DISTRIBUTEDSHELLSCRIPTLEN”, “值”:“ 6” }, { “ key”:“ DISTRIBUTEDSHELLSCRIPTLOCATION”, “ value”:“ hdfs:// hdfs-namenode:9000 / user / testuser / demo-app / shellCommands” } ] } }, “ unmanaged-AM”:否, “最大应用尝试次数”:2, “资源”: { “内存”:1024, “ vCores”:1 }, “ application-type”:“ YARN”, “保持容器跨应用程序尝试”:false, “日志聚合上下文”: { “ log-include-pattern”:“ file1”, “ log-exclude-pattern”:“ file2”, “ rolled-log-include-pattern”:“ file3”, “ rolled-log-exclude-pattern”:“ file4”, “ log-aggregation-policy-class-name”:“ org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AllContainerLogAggregationPolicy”, “日志聚合策略参数”:“” }, “尝试-失败-有效性间隔”:3600000, “ reservation-id”:“ reservation_1454114874_1”, “ am-black-listing-requests”: { “启用了am-black-listing-enabled”:true, “禁用失败阈值”:0.01 } }
响应标题:
HTTP / 1.1 202 传输编码:分块 位置:http:// rm-http-address:port / ws / v1 / cluster / apps / application_1404203615263_0001 内容类型:application / json 服务器:码头(6.1.26)
响应主体:
无反应体
XML回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / apps 接受:application / xml 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <申请提交上下文> <application-id> application_1404204891930_0002 </ application-id> <application-name> test </ application-name> <queue>测试队列</ queue> <priority> 3 </ priority> <am-container-spec> <本地资源> <条目> <key>示例</ key> <值> <resource> hdfs:// hdfs-namenode:9000 / user / testuser / DistributedShell / demo-app / AppMaster.jar </ resource> <type> FILE </ type> <visibility> APPLICATION </ visibility> <size> 43004 </ size> <timestamp> 1405452071209 </ timestamp> </ value> </ entry> </ local-resources> <环境> <条目> <key> DISTRIBUTEDSHELLSCRIPTTIMESTAMP </ key> <value> 1405459400754 </ value> </ entry> <条目> <key> CLASSPATH </ key> <值> {{CLASSPATH}}&lt; CPS&gt; ./*& lt; CPS&gt; {{HADOOP_CONF_DIR}}&lt; CPS&gt; {{HADOOP_COMMON_HOME}} / share / hadoop / common / *&lt; CPS&gt; {{HADOOP_COMMON_HOME}} / share / hadoop / common / lib / *&lt; CPS&gt; {{HADOOP_HDFS_HOME}} / share / hadoop / hdfs / *&lt; CPS&gt; {{HADOOP_HDFS_HOME}} / share / hadoop / hdfs / lib / *&lt; CPS&gt; {{HADOOP_YARN_HOME}} / share / hadoop / yarn / *&lt; CPS&gt; {{HADOOP_YARN_HOME}} / share / hadoop / yarn / lib / *&lt; CPS&gt; ./ log4j.properties </ value> </ entry> <条目> <key> DISTRIBUTEDSHELLSCRIPTLEN </ key> <value> 6 </ value> </ entry> <条目> <key> DISTRIBUTEDSHELLSCRIPTLOCATION </ key> <value> hdfs:// hdfs-namenode:9000 / user / testuser / demo-app / shellCommands </ value> </ entry> </ environment> <命令> <命令> {{JAVA_HOME}} / bin / java -Xmx10m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 10 --container_vcores 1 --num_containers 1-优先级0 1&gt;&lt; LOG_DIR&gt; / AppMaster.stdout 2&gt;&lt; LOG_DIR&gt; /AppMaster.stderr </ command> </ commands> <服务数据> <条目> <key> test </ key> <value> dmFsdWUxMg </ value> </ entry> </ service-data> <凭证> <tokens /> <秘密> <条目> <key> secret1 </ key> <value> c2VjcmV0MQ </ value> </ entry> </ secrets> </凭据> <application-acls> <条目> <key> VIEW_APP </ key> <value> testuser3,testuser4 </ value> </ entry> <条目> <key> MODIFY_APP </ key> <value> testuser1,testuser2 </ value> </ entry> </ application-acls> </ am-container-spec> <unmanaged-AM> false </ unmanaged-AM> <max-app-attempts> 2 </ max-app-attempts> <资源> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ resource> <application-type> YARN </ application-type> <keep-containers-cross-application-attempts> false </ keep-containers-across-application-attempts> <application-tags> <tag>标签2 </ tag> <tag> tag1 </ tag> </ application-tags> <log-aggregation-context> <log-include-pattern>文件1 </ log-include-pattern> <log-exclude-pattern> file2 </ log-exclude-pattern> <rolled-log-include-pattern> file3 </ rolled-log-include-pattern> <rolled-log-exclude-pattern> file4 </ rolled-log-exclude-pattern> <log-aggregation-policy-class-name> org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AllContainerLogAggregationPolicy </ log-aggregation-policy-class-name> <log-aggregation-policy-parameters> </ log-aggregation-policy-parameters> </ log-aggregation-context> <attempt-failures-validity-interval> 3600000 </ attempt-failures-validity-interval> <reservation-id> reservation_1454114874_1 </ reservation-id> <am-black-listing-requests> <am-black-listing-enabled> true </ am-black-listing-enabled> <disable-failure-threshold> 0.01 </ disable-failure-threshold> </ am-black-listing-requests> </ application-submission-context>
响应标题:
HTTP / 1.1 202 传输编码:分块 位置:http:// rm-http-address:port / ws / v1 / cluster / apps / application_1404204891930_0002 内容类型:application / xml 服务器:码头(6.1.26)
响应主体:
无反应体
使用应用程序状态API,您可以使用状态设置为“ KILLED”的PUT请求修改正在运行的应用程序的状态,从而查询提交的应用程序的状态以及杀死正在运行的应用程序。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须被授权杀死该应用程序。当前,您只能将状态更改为“已杀死”。尝试将状态更改为其他任何状态都会导致400错误响应。下面是未授权和错误请求错误的示例。当您执行成功的PUT时,初始响应可能是202。您可以通过重复PUT请求直到得到200,使用GET方法查询状态或查询应用信息并检查州。在以下示例中,我们重复PUT请求并获得200响应。
请注意,为了终止应用程序,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
此功能目前处于Alpha阶段,将来可能会更改。
当您请求应用程序状态时,返回的信息包含以下字段
项目 | 数据类型 | 描述 |
---|---|---|
州 | 串 | 应用程序状态-可以是“ NEW”,“ NEW_SAVING”,“ SUBMITTED”,“ ACCEPTED”,“ RUNNING”,“ FINISHED”,“ FAILED”,“ KILLED”之一 |
JSON回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “状态”:“接受” }
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
{ “ state”:“ KILLED” }
响应标题:
HTTP / 1.1 202接受 内容类型:application / json 传输编码:分块 位置:http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 服务器:码头(6.1.26)
响应主体:
{ “状态”:“接受” } 放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
{ “ state”:“ KILLED” }
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ state”:“ KILLED” }
XML回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:99 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state>已接受</ state> </ appstate>
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state> KILLED </ state> </ appstate>
响应标题:
HTTP / 1.1 202接受 内容类型:application / xml 内容长度:794 位置:http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state>已接受</ state> </ appstate>
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state> KILLED </ state> </ appstate>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:917 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state> KILLED </ state> </ appstate>
未经授权的错误响应
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <state> KILLED </ state> </ appstate>
响应标题:
HTTP / 1.1 403未经授权 服务器:码头(6.1.26)
错误的请求错误响应
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appstate> <状态>运行中</状态> </ appstate>
响应标题:
HTTP / 1.1 400 内容长度:295 内容类型:application / xml 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <RemoteException> <exception> BadRequestException </ exception> <message> java.lang.Exception:仅允许将“ KILLED”作为目标状态。</ message> <javaClassName> org.apache.hadoop.yarn.webapp.BadRequestException </ javaClassName> </ RemoteException>
使用应用程序队列API,您可以查询提交的应用程序的队列,也可以使用指定目标队列的PUT请求将正在运行的应用程序移至另一个队列。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须获得移动应用程序的权限。当前,仅当您使用“容量”计划程序或“公平”计划程序时,才能移动该应用程序。
请注意,要移动应用程序,必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
此功能目前处于Alpha阶段,将来可能会更改。
JSON回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / queue
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ queue”:“默认” }
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / queue
请求正文:
{ “ queue”:“测试” }
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ queue”:“测试” }
XML回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / queue
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:98 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appqueue> <queue>默认</ queue> </ appqueue>
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / queue
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appqueue> <queue>测试</ queue> </ appqueue>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:95 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <appqueue> <queue>测试</ queue> </ appqueue>
使用应用程序优先级API,您可以使用指定目标优先级的PUT请求查询已提交应用程序的优先级以及正在运行或接受的应用程序的更新优先级。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须有权更新应用程序的优先级。当前,仅在使用Capacity Scheduler时才能更新应用程序优先级。
请注意,为了更新应用程序的优先级,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
此功能目前处于Alpha阶段,将来可能会更改。
JSON回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / priority
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “优先级”:0 }
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / priority
请求正文:
{ “优先级”:8 }
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “优先级”:8 }
XML回应
HTTP请求
GET http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / priority
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:98 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <应用优先级> <priority> 0 </ priority> </ applicationpriority>
HTTP请求
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / priority
请求正文:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <应用优先级> <priority> 8 </ priority> </ applicationpriority>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:95 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <应用优先级> <priority> 8 </ priority> </ applicationpriority>
委托令牌API可用于创建,更新和取消YARN ResourceManager委托令牌。所有委托令牌请求必须在Kerberos身份验证的连接上执行(使用SPNEGO)。在非kerberos连接上执行操作将导致FORBIDDEN响应。在续订令牌的情况下,只有在创建令牌时指定的续订者才能续签该令牌。禁止其他用户(包括所有者)更新令牌。应当注意,当取消或更新令牌时,通过设置头部来指定要取消或更新的令牌。
此功能目前处于Alpha阶段,将来可能会更改。
来自委托令牌API的响应包含下面列出的字段之一。
项目 | 数据类型 | 描述 |
---|---|---|
代币 | 串 | 委托令牌 |
更新 | 串 | 允许续订委托令牌的用户 |
所有者 | 串 | 委托令牌的所有者 |
类 | 串 | 委托令牌的种类 |
到期时间 | 长 | 令牌的到期时间 |
最大有效性 | 长 | 令牌的最大有效性 |
JSON回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / delegation-token 接受:application / json 内容类型:application / json { “ renewer”:“测试更新” }
响应头
HTTP / 1.1 200 OK WWW认证:协商... 日期:2014年6月28日,星期六,格林尼治标准时间 服务器:码头(6.1.26) Set-Cookie:... 内容类型:application / json
反应体
{ “令牌”:“ MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUckiEZpigFHSJTKaQECFN9EMM9BzfPoDxu572EVUpzqhnSGE1JNX0RFTEVHQVRJT05fVE9LRU4A” “ renewer”:“测试更新”, “所有者”:“ client@EXAMPLE.COM”, “种类”:“ RM_DELEGATION_TOKEN”, “到期时间”:1405153616489, “最大有效性”:1405672016489 }
XML回应
HTTP请求
POST http:// rm-http-address:port / ws / v1 / cluster / delegation-token 接受:application / xml 内容类型:application / xml <委托代币> <renewer>测试更新</ renewer> </ delegation-token>
响应头
HTTP / 1.1 200 OK WWW认证:协商... 日期:2014年6月28日,星期六,格林尼治标准时间 内容长度:423 服务器:码头(6.1.26) Set-Cookie:... 内容类型:application / xml
反应体
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <授权令牌> <令牌> MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUckgZ8yigFHSI4jMgcCFDTG8X6XFFn2udQngzSXQL8vWaKIE1JNX0RFTVH4L <renewer>测试更新</ renewer> <owner> client@EXAMPLE.COM </ owner> <kind> RM_DELEGATION_TOKEN </ kind> <expiration-time> 1405153180466 </ expiration-time> <max-validity> 1405671580466 </ max-validity> </ delegation-token>
JSON回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / delegation-token / expiration 接受:application / json Hadoop-YARN-RM-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0RF 内容类型:application / json
响应头
HTTP / 1.1 200 OK WWW认证:协商... 日期:2014年6月28日,星期六,格林尼治标准时间 服务器:码头(6.1.26) Set-Cookie:... 内容类型:application / json
反应体
{ “到期时间”:1404112520402 }
XML回应
HTTP请求
POST http:// rm-http-address:port / ws / v1 / cluster / delegation-token / expiration 接受:application / xml 内容类型:application / xml Hadoop-YARN-RM-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0RF
响应头
HTTP / 1.1 200 OK WWW认证:协商... 日期:2014年6月28日,星期六,格林尼治标准时间 内容长度:423 服务器:码头(6.1.26) Set-Cookie:... 内容类型:application / xml
反应体
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <委托代币> <expiration-time> 1404112520402 </ expiration-time> </ delegation-token>
HTTP请求
删除http:// rm-http-address:port / ws / v1 / cluster / delegation-token Hadoop-YARN-RM-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0RF 接受:application / xml
响应头
HTTP / 1.1 200 OK WWW认证:协商... 日期:2014年6月29日,星期日,格林尼治标准时间 传输编码:分块 服务器:码头(6.1.26) Set-Cookie:... 内容类型:application / xml
没有反应的身体。
此功能处于Alpha模式,将来可能会更改。
使用YARN RM Web服务时,可以使用委派令牌来进行身份验证。但是,这需要设置正确的配置。条件是:
Hadoop以安全模式设置,且身份验证类型设置为kerberos。
设置Hadoop HTTP身份验证并将身份验证类型设置为kerberos
设置完成后,可以使用上面列出的Web服务获取委托令牌,并按以下示例所示使用:
放置http:// rm-http-address:port / ws / v1 / cluster / apps / application_1399397633663_0003 / state X-Hadoop-Delegation-Token:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0RFTEVH9VR 内容类型:application / json; 字符集= UTF8 { “ state”:“ KILLED” }
群集预留API可用于列出预留。列出预订时,用户必须根据队列,预订ID,开始时间或结束时间指定约束。用户还必须指定是否包括列出的预留的全部资源分配。结果页面返回一个响应,该响应包含与预订有关的信息,例如接受时间,用户,资源分配,预订ID和预订定义。
项目 | 数据类型 | 描述 |
---|---|---|
预约 | ReservationInfo(JSON)数组/零个或多个ReservationInfo对象(XML) | 给定查询中列出的保留 |
项目 | 数据类型 | 描述 |
---|---|---|
验收时间 | 长 | 接受预订的时间 |
资源分配 | ResourceAllocationInfo(JSON)数组/零个或多个ResourceAllocationInfo对象(XML) | 预订的资源分配信息 |
预订编号 | 单个ReservationId字符串 | 唯一的预留标识符 |
保留定义 | 单个ReservationDefinition对象 | 一组约束,代表随着时间的推移对资源的需求 |
用户 | 串 | 预订的用户 |
项目 | 数据类型 | 描述 |
---|---|---|
到达 | 长 | 可以从中分配该保留时间的最早时间的UTC时间表示。 |
最后期限 | 长 | 可以分配此保留时间的最近时间的UTC时间表示。 |
保留名称 | 串 | 保留的助记符名称(不是有效的标识符)。 |
预订请求 | 宾语 | 此预留的“阶段”或阶段的列表,每个阶段描述资源需求和持续时间 |
优先 | 整型 | 表示预留优先级的整数。较低的优先级数字表示较高的优先级预留。重复保留始终比非重复保留具有更高的优先级。仅将非经常性预订的优先级与非经常性预订进行比较。同样,重复预订。 |
复发表达 | 串 | 重复表达式,表示定期作业的时间段。当前,仅支持长值。稍后,将添加对表示任意重复模式的正则表达式的支持(例如,每个星期二和星期四)。定期作业的重复时间以毫秒为单位。对于非定期作业,重复率为0。定期作业在被明确取消之前一直有效,并且比非定期作业(在初始安置和重新计划期间)具有更高的优先级。定期的工作分配在各次运行中保持一致(分配的灵活性仅在初始安置期间得到利用,此后分配保持一致)。请注意,重复表达式必须大于保留的持续时间(截止日期-到达时间)。 |
项目 | 数据类型 | 描述 |
---|---|---|
预约请求解释器 | 整型 | 关于如何解释ReservationRequest集合的数字选择:0是ANY,1是ALL,2是ORDER,3是ORDER_NO_GAP |
预约请求 | 宾语 | 此预留阶段/阶段的资源和时间功能的描述 |
项目 | 数据类型 | 描述 |
---|---|---|
持续时间 | 长 | ReservationRequest的持续时间(以毫秒为单位)(对于该保留部分的连续毫秒数,应该存在可满足的分配)。 |
数量容器 | 整型 | 保留的此阶段所需的容器数(在此阶段捕获作业的最大并行度)。 |
最小并发 | 整型 | 必须同时分配以满足此分配要求的最少数量的容器(捕获min-parallelism,用于表示帮派语义)。 |
能力 | 宾语 | 允许指定每个容器(内存,vCore)的大小。 |
获取请求可用于列出对ResourceManager的保留。如上所述,与预订有关的信息将在成功后返回(在答案正文中)。成功的列表请求导致200响应。请注意,要提交保留,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。请注意,此功能目前处于Alpha阶段,将来可能会更改。
JSON回应
此请求返回开始时间1455159355000和1475160036000内的所有活动预留。由于include-resource-allocations设置为true,因此完整的资源分配集将包含在响应中。
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / reservation / list?queue = dedicated&start-time = 1455159355000&end-time = 1475160036000&include-resource-allocations = true
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 缓存控制:无缓存 内容编码:gzip 语法:无缓存,无缓存 服务器:码头(6.1.26)
响应主体:
{ “预订”:{ “接受时间”:“ 1455160008442”, “ user”:“ submitter”, “资源分配”:[ { “资源”:{ “内存”:“ 0”, “ vCores”:“ 0” }, “ startTime”:“ 1465541532000”, “ endTime”:“ 1465542250000” }, { “资源”:{ “内存”:“ 1024”, “ vCores”:“ 1” }, “ startTime”:“ 1465542250000”, “ endTime”:“ 1465542251000” }, { “资源”:{ “内存”:“ 0”, “ vCores”:“ 0” }, “ startTime”:“ 1465542251000”, “ endTime”:“ 1465542252000” } ], “ reservation-id”:“ reservation_1458852875788_0002”, “预订定义”:{ “到达”:“ 1465541532000”, “最后期限”:“ 1465542252000”, “预订请求”:{ “预订请求解释器”:“ 0”, “预订请求”:{ “功能”:{ “内存”:“ 1024”, “ vCores”:“ 1” }, “ min-concurrency”:“ 1”, “ num-containers”:“ 1”, “持续时间”:“ 60” } }, “ reservation-name”:“ res_1” } } }
XML回应
HTTP请求:
GET http:// rm-http-address:port / ws / v1 / cluster / reservation / list?queue = dedicated&start-time = 1455159355000&end-time = 1475160036000&include-resource-allocations = true
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:395 缓存控制:无缓存 内容编码:gzip 语法:无缓存,无缓存 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <reservationListInfo> <预订> <acceptance-time> 1455233661003 </ acceptance-time> <user> dr.who </ user> <资源分配> <资源> <memory> 0 </ memory> <vCores> 0 </ vCores> </ resource> <startTime> 1465541532000 </ startTime> <endTime> 1465542251000 </ endTime> </ resource-allocations> <资源分配> <资源> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ resource> <startTime> 1465542251000 </ startTime> <endTime> 1465542252000 </ endTime> </ resource-allocations> <reservation-id> reservation_1458852875788_0002 </ reservation-id> <预订定义> <arrival> 1465541532000 </ arrival> <deadline> 1465542252000 </ deadline> <预订要求> <reservation-request-interpreter> 0 </ reservation-request-interpreter> <预订要求> <能力> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ capability> <min-concurrency> 1 </ min-concurrency> <num-containers> 1 </ num-containers> <duration> 60 </ duration> </ reservation-request> </ reservation-requests> <reservation-name> res_1 </ reservation-name> </ reservation-definition> </ reservations> </ reservationListInfo>
使用新的保留API,获取一个保留ID,然后将其用作集群保留API提交以提交保留的一部分。
此功能目前处于Alpha阶段,将来可能会更改。
JSON回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / reservation / new-reservation
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “ reservation-id”:“ reservation_1404198295326_0003” }
XML回应
HTTP请求:
POST http:// rm-http-address:port / ws / v1 / cluster / reservation / new-reservation
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:248 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <新预订> <reservation-id> reservation_1404198295326_0003 </ reservation-id> </ new-reservation>
群集预留API可用于提交预留。提交预订时,用户会在资源和所需时间方面指定约束条件。如果可以进行保留,则结果响应成功。如果使用预订ID多次提交预订,则如果预订定义相同,则请求将成功,但是只会创建一个预订。如果保留定义不同,则服务器将以错误响应进行响应。进行预留后,用户可以将其指定为Cluster Submit Applications API的一部分,从而使用提交预留的预留ID来访问资源。
POST请求可用于向ResourceManager提交保留。如上所述,成功后将返回保留ID(在答案的正文中)。成功提交将获得200条回应。请注意,要提交保留,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
请注意,此功能目前处于Alpha阶段,将来可能会更改。
项目 | 数据类型 | 描述 |
---|---|---|
队列 | 串 | 您要提交到的(保留)队列 |
保留定义 | 宾语 | 一组约束,代表随着时间的推移对资源的需求。 |
预订编号 | 串 | 用于提交预订的预订ID。 |
预留定义对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
到达 | 长 | 可以从中分配该保留时间的最早时间的UTC时间表示。 |
最后期限 | 长 | 可以分配此保留时间的最近时间的UTC时间表示。 |
保留名称 | 串 | 保留的助记符名称(不是有效的标识符)。 |
预订请求 | 宾语 | 此预留的“阶段”或阶段的列表,每个阶段描述资源需求和持续时间 |
优先 | 整型 | 表示预留优先级的整数。较低的优先级数字表示较高的优先级预留。重复保留始终比非重复保留具有更高的优先级。仅将非经常性预订的优先级与非经常性预订进行比较。同样,重复预订。 |
预留请求对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
预约请求解释器 | 整型 | 关于如何解释ReservationRequest集合的数字选择:0是ANY,1是ALL,2是ORDER,3是ORDER_NO_GAP |
预约请求 | 宾语 | 此预留阶段/阶段的资源和时间功能的描述 |
预留请求对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
持续时间 | 长 | ReservationRequeust的持续时间(以毫秒为单位)(对于此保留部分,应该存在一个可满足的连续毫秒数)。 |
数量容器 | 整型 | 保留的此阶段所需的容器数(在此阶段捕获作业的最大并行度)。 |
最小并发 | 整型 | 必须同时分配以满足此分配要求的最少数量的容器(捕获min-parallelism,用于表示帮派语义)。 |
能力 | 宾语 | 允许指定每个容器(内存,vCore)的大小。 |
能力对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 此容器的内存MB数 |
虚拟核心 | 整型 | 此容器的虚拟核心数 |
JSON回应
此示例包含一个由两个阶段组成的保留(当reservation-request-解释器设置为0时,它们彼此交替),因此第一个阶段较短,并且“ taller”和“ gang”正好包含220个容器,持续60秒,而第二种选择是更长的持续时间为120秒,而更高的则为110个容器(以及最小并发性为1个容器,因此没有帮派语义)。
HTTP请求:
POST http:// rmdns:8088 / ws / v1 / cluster / reservation / submit 内容类型:application / json { “ queue”:“专用”, “ reservation-id”:“ reservation_1404198295326_0003” “预订定义”:{ “到达”:1765541532000, “最后期限”:1765542252000, “ reservation-name”:“ res_1”, “预订请求”:{ “预订请求解释器”:0, “预订请求”:[ { “持续时间”:60000, “数量容器”:220, “最小并发”:220, “功能”:{ “内存”:1024, “ vCores”:1 } }, { “持续时间”:120000, “数量容器”:110, “最小并发”:1, “功能”:{ “内存”:1024, “ vCores”:1 } } ] } } }
响应标题:
200 OK Cache-Control:no-cache Expires:Thu,2015年12月17日23:36:34 GMT,Thu,2015年12月17日23:36:34 GMT日期:Thu,2015年12月17日23:36:34 GMT,Thu, 2015年12月17日23:36:34 GMT语法:no-cache,no-cache内容类型:application / xml内容编码:gzip内容长度:137服务器:码头(6.1.26)
响应主体:
无反应体
XML回应
HTTP请求:
POST http:// rmdns:8088 / ws / v1 / cluster / reservation / submit 接受:application / xml 内容类型:application / xml <预订-提交-上下文> <queue>专用</ queue> <reservation-id> reservation_1404198295326_0003 </ reservation-id> <预订定义> <arrival> 1765541532000 </ arrival> <deadline> 1765542252000 </ deadline> <reservation-name> res_1 </ reservation-name> <预订要求> <reservation-request-interpreter> 0 </ reservation-request-interpreter> <预订要求> <duration> 60000 </ duration> <num-containers> 220 </ num-containers> <min-concurrency> 220 </ min-concurrency> <能力> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ capability> </ reservation-request> <预订要求> <duration> 120000 </ duration> <num-containers> 110 </ num-containers> <min-concurrency> 1 </ min-concurrency> <能力> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ capability> </ reservation-request> </ reservation-requests> </ reservation-definition> </ reservation-submission-context>
响应标题:
200 OK Cache-Control:no-cache Expires:Thu,17 Dec 2015 23:49:21 GMT,Thu,2015/12/17 23:49:21 GMT Date:Thu,2015/12/17 23:49:21 GMT,Thu, 2015年12月17日23:49:21 GMT语法:no-cache,no-cache内容类型:application / xml内容编码:gzip内容长度:137服务器:码头(6.1.26)
响应主体:
无反应体
可以使用集群保留API更新来更新现有的保留。保留的更新与上述提交的工作类似,但是用户提交要更新的现有保留的保留ID。语义是一试即换的,成功的操作将基于请求的update参数修改现有的保留,而执行失败将使现有的保留保持不变。
POST请求可用于更新对ResourceManager的保留。成功提交的结果为200,表示现有预订的就地更新(id不变)。请注意,为了更新预订,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
请注意,此功能目前处于Alpha阶段,将来可能会更改。
项目 | 数据类型 | 描述 |
---|---|---|
预订编号 | 串 | 要更新的预订的ID(系统会从中自动查找正确的队列) |
保留定义 | 宾语 | 一组约束,代表随着时间的推移对资源的需求。 |
预留定义对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
到达 | 长 | 可以从中分配该保留时间的最早时间的UTC时间表示。 |
最后期限 | 长 | 可以分配此保留时间的最近时间的UTC时间表示。 |
保留名称 | 串 | 保留的助记符名称(不是有效的标识符)。 |
预订请求 | 宾语 | 此预留的“阶段”或阶段的列表,每个阶段描述资源需求和持续时间 |
优先 | 整型 | 表示预留优先级的整数。较低的优先级数字表示较高的优先级预留。重复保留始终比非重复保留具有更高的优先级。仅将非经常性预订的优先级与非经常性预订进行比较。同样,重复预订。 |
预留请求对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
预约请求解释器 | 整型 | 关于如何解释ReservationRequest集合的数字选择:0是ANY,1是ALL,2是ORDER,3是ORDER_NO_GAP |
预约请求 | 宾语 | 此预留阶段/阶段的资源和时间功能的描述 |
预留请求对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
持续时间 | 长 | ReservationRequeust的持续时间(以毫秒为单位)(对于此保留部分,应该存在一个可满足的连续毫秒数)。 |
数量容器 | 整型 | 保留的此阶段所需的容器数(在此阶段捕获作业的最大并行度)。 |
最小并发 | 整型 | 必须同时分配以满足此分配要求的最少数量的容器(捕获min-parallelism,用于表示帮派语义)。 |
能力 | 宾语 | 允许指定每个容器(内存,vCore)的大小。 |
能力对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
记忆 | 整型 | 此容器的内存MB数 |
虚拟核心 | 整型 | 此容器的虚拟核心数 |
JSON回应
这方面的例子更新由鉴定的现有预订reservation_1449259268893_0005两个阶段(为了作为预约请求解释器被设定为2),与第一阶段为一个10个集装箱的“纲”为5分钟(10个集装箱的分钟并发),接着是50个容器10分钟(最少并发1个容器,因此没有帮派语义)。
HTTP请求:
POST http:// rmdns:8088 / ws / v1 / cluster / reservation / update 接受:application / json 内容类型:application / json { “ reservation-id”:“ reservation_1449259268893_0005”, “预订定义”:{ “到达”:1765541532000, “最后期限”:1765542252000, “ reservation-name”:“ res_1”, “预订请求”:{ “预订请求解释器”:2 “预订请求”:[ { “持续时间”:300000, “数量容器”:10, “最小并发”:10, “功能”:{ “内存”:1024, “ vCores”:1 } }, { “持续时间”:60000, “数量容器”:50, “最小并发”:1, “功能”:{ “内存”:1024, “ vCores”:1 } } ] } } }
响应标题:
200 OK Cache-Control:no-cache Expires:Thu,2015年12月17日23:36:34 GMT,Thu,2015年12月17日23:36:34 GMT日期:Thu,2015年12月17日23:36:34 GMT,Thu, 2015年12月17日23:36:34 GMT语法:无缓存,无缓存内容类型:application / json内容编码:gzip内容长度:137服务器:码头(6.1.26)
响应主体:
无反应体
XML回应
HTTP请求:
POST http:// rmdns:8088 / ws / v1 / cluster / reservation / update 接受:application / xml 内容类型:application / xml <reservation-update-context> <reservation-id> reservation_1449259268893_0005 </ reservation-id> <预订定义> <arrival> 1765541532000 </ arrival> <deadline> 1765542252000 </ deadline> <reservation-name> res_1 </ reservation-name> <预订要求> <reservation-request-interpreter> 2 </ reservation-request-interpreter> <预订要求> <duration> 300000 </ duration> <num-containers> 10 </ num-containers> <min-concurrency> 10 </ min-concurrency> <能力> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ capability> </ reservation-request> <预订要求> <duration> 60000 </ duration> <num-containers> 50 </ num-containers> <min-concurrency> 1 </ min-concurrency> <能力> <memory> 1024 </ memory> <vCores> 1 </ vCores> </ capability> </ reservation-request> </ reservation-requests> </ reservation-definition> </ reservation-update-context>
响应标题:
200 OK Cache-Control:no-cache Expires:Thu,17 Dec 2015 23:49:21 GMT,Thu,2015/12/17 23:49:21 GMT Date:Thu,2015/12/17 23:49:21 GMT,Thu, 2015年12月17日23:49:21 GMT语法:no-cache,no-cache内容类型:application / xml内容编码:gzip内容长度:137服务器:码头(6.1.26)
响应主体:
无反应体
群集保留API删除可用于删除现有的保留。删除的工作类似于更新。该请求包含保留ID,如果成功,则取消保留,否则保留保留在系统中。
POST请求可用于删除对ResourceManager的保留。成功提交将产生200响应,表明删除成功。请注意,要删除保留,您必须为HTTP接口设置一个身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。
请注意,此功能目前处于Alpha阶段,将来可能会更改。
项目 | 数据类型 | 描述 |
---|---|---|
预订编号 | 串 | 要删除的预订的ID(系统会从中自动查找正确的队列) |
JSON回应
本示例删除由Reservation_1449259268893_0006标识的现有预订
HTTP请求:
POST http://10.200.91.98:8088/ws/v1/cluster/reservation/delete 接受:application / json 内容类型:application / json { “ reservation-id”:“ reservation_1449259268893_0006” }
响应标题:
200 OK缓存控制:无缓存过期:2015年12月18日星期五,格林尼治标准时间,2015年12月18日星期五,格林尼治标准时间:2015年12月18日星期五,格林尼治标准时间,星期五, 2015年12月18日01:31:05 GMT语法:无缓存,无缓存内容类型:application / json内容编码:gzip传输编码:分块服务器:码头(6.1.26)
响应主体:
无反应体
XML回应
HTTP请求:
POST http://10.200.91.98:8088/ws/v1/cluster/reservation/delete 接受:application / xml 内容类型:application / xml <保留-删除上下文> <reservation-id> reservation_1449259268893_0006 </ reservation-id> </ reservation-delete-context>
响应标题:
200 OK缓存控制:无缓存过期:2015年12月18日星期五,格林尼治标准时间,星期五,2015年12月18日格林尼治时间01:33:23日期:2015年12月18日星期五,格林尼治标准时间, 2015年12月18日01:33:23 GMT语法:no-cache,no-cache内容类型:application / xml内容编码:gzip内容长度:101服务器:码头(6.1.26)
响应主体:
无反应体
群集应用程序超时API可用于获取应用程序的所有已配置超时。在此资源上运行GET操作时,将返回超时对象的集合。每个超时对象都由超时类型,到期时间和以秒为单位的剩余时间组成。
当您请求应用程序超时列表时,该信息将作为超时对象的集合返回。另请参见集群应用程序超时API,以了解超时对象的语法。
项目 | 数据类型 | 描述 |
---|---|---|
超时 | 超时对象数组(JSON)/零个或多个应用程序对象(XML) | 应用程序超时对象的集合 |
JSON回应
HTTP请求:
接受:application / json GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeouts
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “超时”: { “超时”: [ { “ type”:“ LIFETIME”, “ expiryTime”:“ 2016-12-05T22:51:00.104 + 0530”, “ remainingTimeInSeconds”:27 } ] } }
XML回应
HTTP请求:
接受:application / xml GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeouts
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:712 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <超时> <超时> <type> LIFETIME </ type> <expiryTime> 2016-12-05T22:51:00.104 + 0530 </ expiryTime> <remainingTimeInSeconds> 27 </ remainingTimeInSeconds> </ timeout> </ timeouts>
群集应用程序超时资源包含有关超时的信息。
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 超时类型。有效值是ApplicationTimeoutType枚举的成员。LIFETIME是当前唯一的有效值。 |
到期时间 | 串 | 应用程序将以ISO8601 yyyy-MM-dd'T'HH:mm:ss.SSSZ格式到期的时间。如果为UNLIMITED,则应用程序将永远运行。 |
missingTimeInSeconds | 长 | 配置的应用程序超时的剩余时间。-1表示未为应用程序配置超时。零(0)表示应用程序已过期且配置了超时类型。 |
JSON回应
HTTP请求:
接受:application / json GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeouts / LIFETIME
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “超时”: { “ type”:“ LIFETIME”, “ expiryTime”:“ 2016-12-05T22:51:00.104 + 0530”, “ remainingTimeInSeconds”:27 } }
XML回应
HTTP请求:
接受:application / xml GET http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeouts / LIFETIME
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:712 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <超时> <type> LIFETIME </ type> <expiryTime> 2016-12-05T22:51:00.104 + 0530 </ expiryTime> <remainingTimeInSeconds> 27 </ remainingTimeInSeconds> </ timeout>
为给定的超时类型更新应用程序的超时。
项目 | 数据类型 | 描述 |
---|---|---|
类型 | 串 | 超时类型。有效值是ApplicationTimeoutType枚举的成员。LIFETIME是当前唯一的有效值。 |
到期时间 | 串 | 应用程序将以ISO8601 yyyy-MM-dd'T'HH:mm:ss.SSSZ格式到期的时间。 |
JSON回应
HTTP请求:
接受:application / json 放置http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeout 内容类型:application / json { “超时”: { “ type”:“ LIFETIME”, “ expiryTime”:“ 2016-11-27T09:36:16.678 + 05:30” } }
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{ “超时”: { “ type”:“ LIFETIME”, “ expiryTime”:“ 2016-11-27T09:36:16.678 + 05:30”, “ remainingTimeInSeconds”:90 } }
XML回应
HTTP请求:
接受:application / xml 放置http:// rm-http-address:port / ws / v1 / cluster / apps / {appid} / timeout 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <超时> <type> LIFETIME </ type> <expiryTime> 2016-11-27T09:36:16.678 + 05:30 </ expiryTime> </ timeout>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:712 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <超时> <type> LIFETIME </ type> <expiryTime> 2016-11-27T09:36:16.678 + 05:30 </ expiryTime> <remainingTimeInSeconds> 90 </ remainingTimeInSeconds> </ timeout>
调度程序配置突变API提供了一种修改调度程序/队列配置和队列层次结构的方法。
请注意,此功能目前处于Alpha阶段,可能会有所更改。
项目 | 数据类型 | 描述 |
---|---|---|
更新队列 | 宾语 | 其配置应更新的队列 |
添加队列 | 宾语 | 要添加到调度程序的队列以及该队列的配置 |
删除队列 | 串 | 要删除的队列的完整路径名 |
全局更新 | 地图 | 键值对映射以更新调度程序的全局配置 |
获取请求用于检索当前加载到调度程序上下文中的调度程序配置。
XML回应
HTTP请求:
接受:application / xml 内容类型:application / xml 获取http:// rm-http-address:port / ws / v1 / cluster / scheduler-conf
响应标题:
TTP / 1.1 200 OK 内容类型:application / xml; 字符集= utf-8 传输编码:分块
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <配置> <属性> <name> yarn.scheduler.capacity.root.queues </ name> <value>默认</ value> </ property> <属性> <name> yarn.scheduler.capacity.maximum-applications </ name> <value> 10000 </ value> </ property> <属性> <name> yarn.scheduler.capacity.root.default.capacity </ name> <value> 100 </ value> </ property> </ configuration>
放置请求用于修改调度程序配置。成功的突变导致200响应。格式错误的请求或导致无效的调度程序配置的请求将导致400响应。
更新队列配置
请求更新队列配置。
更新队列对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
队列名称 | 串 | 要更新的队列的完整路径名 |
参数 | 地图 | 要为此队列更新的键值配置对的映射 |
假设我们正在使用容量调度程序,并且当前队列配置是单个队列root.default,此示例将root.default的最大应用程序设置为100,将最小用户限制百分比设置为10。
HTTP请求:
接受:application / xml 放置http:// rm-http-address:port / ws / v1 / cluster / scheduler-conf 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <sched-conf> <更新队列> <queue-name> root.default </ queue-name> <参数> <条目> <key>最大应用程序</ key> <value> 100 </ value> </ entry> <条目> <key> minimum-user-limit-percent </ key> <value> 10 </ value> </ entry> </ params> </ update-queue> </ sched-conf>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 传输编码:分块
添加队列
请求添加队列/更新队列配置。
添加队列对象的元素
项目 | 数据类型 | 描述 |
---|---|---|
队列名称 | 串 | 要添加的队列的完整路径名 |
参数 | 地图 | 要为此队列设置的键值配置对的映射 |
假设我们正在使用容量调度程序,并且当前队列配置是单个队列root.default,则此示例添加容量/最大容量为10 的队列root.a,并将root.default的容量/最大容量调整为90 (更复杂的示例包括添加一个队列,该队列的父级也要添加到同一请求中,或者添加多个同级队列。)
HTTP请求:
接受:application / xml 放置http:// rm-http-address:port / ws / v1 / cluster / scheduler-conf 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <sched-conf> <添加队列> <queue-name> root.a </ queue-name> <参数> <条目> <key>容量</ key> <value> 10 </ value> </ entry> <条目> <key>最大容量</ key> <value> 10 </ value> </ entry> </ params> </ add-queue> <更新队列> <queue-name> root.default </ queue-name> <参数> <条目> <key>容量</ key> <value> 90 </ value> </ entry> <条目> <key>最大容量</ key> <value> 90 </ value> </ entry> </ params> </ update-queue> </ sched-conf>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 传输编码:分块
删除队列
请求从队列层次结构中删除队列。
假设我们正在使用的容量调度器和当前队列配置是三个队列root.default,root.a和root.b,这个例子同时删除root.a和root.b。(更复杂的示例包括删除父队列及其子队列。)
注意:在删除队列之前,必须将其置于STOPPED状态。任何更新的队列配置都应该是有效的,即每个级别的队列容量应等于100%。
HTTP请求:
接受:application / xml 放置http:// rm-http-address:port / ws / v1 / cluster / scheduler-conf 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <sched-conf> <remove-queue> root.a </ remove-queue> <remove-queue> root.b </ remove-queue> </ sched-conf>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 传输编码:分块
更新全局调度程序配置
请求更新全局调度程序配置。假设我们正在使用容量调度程序,则此示例启用队列映射。对于全局配置更新,必须指定完整的配置密钥。
HTTP请求:
接受:application / xml 放置http:// rm-http-address:port / ws / v1 / cluster / scheduler-conf 内容类型:application / xml <?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <sched-conf> <global-updates> <条目> <key> yarn.scheduler.capacity.queue-mappings-override.enable </ key> <value> true </ value> </ entry> </ global-updates> </ sched-conf>
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 传输编码:分块