Hadoop 文档

General

Common

HDFS

MapReduce

MapReduce REST APIs

YARN

YARN REST APIs

YARN Service

Submarine

Hadoop Compatible File Systems

Auth

Tools

Reference

Configuration

总览

ResourceManager REST API允许用户获取有关群集的信息-群集上的状态,群集上的指标,调度程序信息,有关群集中节点的信息以及有关群集中应用程序的信息。

启用CORS支持

要仅针对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。

集群信息API

群集信息资源提供有关群集的总体信息。

支持HTTP操作

  • 得到

查询参数支持

  没有

clusterInfo对象的元素

项目 数据类型 描述
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>

集群指标API

群集指标资源提供了有关群集的一些总体指标。应该从jmx界面检索更详细的指标。

支持HTTP操作

  • 得到

查询参数支持

  没有

clusterMetrics对象的元素

项目 数据类型 描述
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>

群集调度程序API

调度程序资源包含有关集群中配置的当前调度程序的信息。它目前支持Fifo,容量和公平调度程序。根据配置哪个调度程序,您将获得不同的信息,因此请务必查看类型信息。

支持HTTP操作

  • 得到

查询参数支持

  没有

容量调度程序API

容量调度程序支持分层队列。这个请求将打印有关所有队列及其所有子队列的信息。实际上可以提交作业的队列称为叶子队列。这些队列具有与之关联的其他数据。

schedulerInfo对象的元素

项目 数据类型 描述
类型 调度程序类型-CapacityScheduler
容量 浮动 配置的队列容量(相对于其父队列)
已用容量 浮动 已用队列容量(百分比)
最大容量 浮动 已配置的最大队列容量(相对于其父队列的百分比)
queueName 队列名称
s列 队列数组(JSON)/零个或多个队列对象(XML) 队列资源的集合
健康 单个健康对象 容量调度程序的运行状况指标。此指标自2.8.0开始存在,但输出格式不正确。因此,用户不能完全使用此字段,此版本从3.2.0开始进行了优化。

父队列的队列对象的元素

项目 数据类型 描述
容量 浮动 配置的队列容量(相对于其父队列)
已用容量 浮动 已用队列容量(百分比)
最大容量 浮动 已配置的最大队列容量(相对于其父队列的百分比)
绝对容量 浮动 此队列可以使用整个集群的绝对容量百分比
绝对最大容量 浮动 该队列可以使用整个集群的绝对最大容量百分比
绝对使用容量 浮动 该队列在整个集群中使用的绝对已用容量百分比
numApplications 整型 当前队列中的应用程序数
usedResources 一个字符串,描述队列使用的当前资源
queueName 队列名称
QueueState的字符串 队列状态
s列 队列数组(JSON)/零个或多个队列对象(XML) 子队列信息的集合。如果队列没有子队列,则省略。
使用资源 单个资源对象 此队列使用的资源总数

Leaf队列的queues对象的元素-包含父元素中除“ queues”外的所有元素以及以下内容:

项目 数据类型 描述
类型 队列类型-CapacitySchedulerLeafQueueInfo
numActiveApplications 整型 此队列中活动的应用程序数
numPendingApplications 整型 此队列中待处理的应用程序数
numContainers 整型 使用的容器数
maxApplications 整型 此队列可以拥有的最大应用程序数
maxApplicationsPerUser 整型 每个用户可拥有的最大应用程序数量
maxActiveApplications 整型 该队列可以拥有的最大活动应用程序数
maxActiveApplicationsPerUser 整型 每个用户可拥有的最大活动应用程序数量
userLimit 整型 配置中设置的最小用户限制百分比
userLimitFactor 浮动 在配置中设置的用户限制因素
使用者 用户数组(JSON)/零个或多个用户对象(XML) 包含已使用资源的用户对象的集合

用户的用户对象元素:

项目 数据类型 描述
用户名 使用资源的用户的用户名
使用资源 单个资源对象 用户在此队列中使用的资源量
numActiveApplications 整型 此队列中该用户的活动应用程序数
numPendingApplications 整型 此队列中为此用户的挂起的应用程序数

资源的资源对象的元素用于用户和队列:

项目 数据类型 描述
记忆 整型 使用的内存量(以MB为单位)
虚拟核心 整型 虚拟核心数

schedulerInfo中的运行状况对象的元素:

项目 数据类型 描述
上一个 应用程序启动的时间(从纪元开始以毫秒为单位)
OperationsInfo 操作数组(JSON)/操作对象(XML) 操作对象的集合
lastRunDetails lastRunDetails(JSON)/ lastRunDetail对象(XML)的数组 lastRunDetail对象的集合

健康中操作对象的元素:

项目 数据类型 描述
运作 操作类型
nodeId 与操作相关的节点的ID
containerId 与操作相关的容器的ID
队列 与操作相关的队列的名称

运行状况中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>

Fifo Scheduler API

schedulerInfo对象的元素

项目 数据类型 描述
类型 调度程序类型-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>

Fair Scheduler API

schedulerInfo对象的元素

项目 数据类型 描述
类型 调度程序类型-fairScheduler
rootQueue 根队列对象 根队列资源的集合

所有队列对象的元素

项目 数据类型 描述
maxApps 整型 队列可以拥有的最大应用程序数
minResources 单个资源对象 保证队列的已配置最小资源
maxResources 单个资源对象 队列允许的已配置的最大资源
usedResources 单个资源对象 分配给队列中的容器的资源总和
fairResources 单个资源对象 队列中公平分配的资源
clusterResources 单个资源对象 集群容量
queueName 队列名称
调度策略 队列使用的调度策略的名称
childQueues 队列数组(JSON)/队列对象(XML) 子队列信息的集合。如果队列没有childQueues或是叶子队列,则省略。
locatedContainers 整型 分配的容器数
需求资源 单个资源对象 调度程序未满足此队列中的容器所请求的资源
待处理的容器 整型 待处理的容器数
可抢占 布尔值 如果可以抢占此队列中的容器,则为true
保留容器 整型 保留容器数
stableFairResources 单个资源对象 排队的公平份额

叶子队列对象的其他元素(“ childQueues”属性除外)

项目 数据类型 描述
类型 队列的类型-fairSchedulerLeafQueueInfo
numActiveApps 整型 此队列中活动的应用程序数
numPendingApps 整型 此队列中待处理的应用程序数

队列中(cluster / demand / fair / max / min / used / *)Resources对象的元素

项目 数据类型 描述
记忆 整型 使用的内存量(以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>

集群应用程序API

使用Applications API,您可以获得资源的集合,每个资源代表一个应用程序。在此资源上运行GET操作时,将获得应用程序对象的集合。

支持HTTP操作

  • 得到

查询参数支持

可以为GET操作指定多个参数。开始时间和结束时间都有一个begin和end参数,以允许您指定范围。例如,可以请求在2011年12月19日凌晨1:00和下午2:00之间启动的所有应用程序,其中startedTimeBegin = 1324256400&startedTimeEnd = 1324303200。如果未指定Begin参数,则默认为0;如果未指定End参数,则默认为无穷。此api的所有查询参数将在所有应用程序上进行过滤。但是,队列查询参数只会隐式过滤给定队列中当前未完成的应用程序。

  • 状态[不推荐使用]-应用程序的状态
    • 状态-与给定应用程序状态匹配的应用程序,指定为以逗号分隔的列表。
    • finalStatus-应用程序的最终状态-由应用程序本身报告
    • 用户-用户名
    • 队列-当前在此队列中的未完成的应用程序
    • 限制-要返回的应用程序对象总数
    • startsTimeBegin-开始时间从该时间开始的应用程序,从纪元开始以毫秒为单位指定
    • startsTimeEnd-开始时间以该时间结束的应用程序,从纪元开始以毫秒为单位指定
    • finishTimeBegin-结束时间从该时间开始的应用程序,从纪元开始以毫秒为单位指定
    • finishTimeEnd-结束时间以该时间结束的应用程序,从纪元开始以毫秒为单位指定
    • applicationTypes-与给定应用程序类型匹配的应用程序,指定为以逗号分隔的列表。
    • applicationTags-与任何给定应用程序标签匹配的应用程序,指定为以逗号分隔的列表。
    • deSelects-将在结果中跳过的通用字段。

应用程序(Applications)对象的元素

当您请求应用程序列表时,该信息将作为应用程序对象的集合返回。另请参阅应用程序API,了解应用程序对象的语法。

项目 数据类型 描述
应用程式 应用程序对象数组(JSON)/零个或多个应用程序对象(XML) 应用程序对象的集合

deSelects参数的元素

帮助不需要某些信息的请求者以减少开销。

当前支持的项目:

项目 数据类型 描述
重新请求 逗号分隔的字符串 跳过应用程序的资源请求以换取

例如:

回应范例

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>

集群应用统计API

使用Application Statistics API,您可以获得三元组的集合,每个三元组都包含应用程序类型,应用程序状态以及ResourceManager上下文中这种类型的应用程序数和该状态。请注意,出于性能方面的考虑,我们目前每个查询最多仅支持一种applicationType。我们可能会在每个查询中支持多种applicationType,以及将来的更多统计信息。在此资源上运行GET操作时,将获得statItem对象的集合。

支持HTTP操作

  • 得到

查询参数必填

可以指定两个参数。参数不区分大小写。

  • 状态-应用程序的状态,指定为以逗号分隔的列表。如果未提供状态,则API将枚举所有应用程序状态并返回它们的计数。
    • applicationTypes-应用程序的类型,指定为以逗号分隔的列表。如果未提供applicationTypes,则API将计算任何应用程序类型的应用程序。在这种情况下,响应显示*表示任何应用程序类型。请注意,我们暂时最多仅支持一种applicationType。否则,用户将期望BadRequestException。

appStatInfo(statItems)对象的元素

当您请求统计信息列表时,信息将作为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>

集群应用程序API

应用程序资源包含有关已提交到集群的特定应用程序的信息。

URI

使用以下URI从由appid值标识的应用程序中获取应用程序对象。

支持HTTP操作

  • 得到

查询参数支持

  没有

应用程序(应用程序)对象的元素

请注意,根据安全设置,用户可能无法看到所有字段。

项目 数据类型 描述
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

使用应用程序尝试API,您可以获得代表应用程序尝试的资源的集合。在此资源上运行GET操作时,将获得App Attempt对象的集合。

支持HTTP操作

  • 得到

查询参数支持

  没有

appAttempts对象的元素

当您请求应用尝试列表时,该信息将作为应用尝试对象数组返回。

appAttempts:

项目 数据类型 描述
appAttempt 应用尝试对象的数组(JSON)/零个或多个应用尝试对象的XML 应用尝试对象的集合

appAttempt对象的元素

项目 数据类型 描述
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>

应用程序尝试API的容器

使用用于Application Attempt API的容器,您可以获得属于Application Attempt的容器列表。

支持HTTP操作

  • 得到

查询参数支持

  没有

容器对象的元素

当您请求容器列表时,信息将作为容器对象数组返回。

容器:

项目 数据类型 描述
货柜 应用程序容器对象的数组(JSON)/零个或多个容器对象(XML) 应用容器对象的集合

容器对象的元素

项目 数据类型 描述
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的特定容器

使用“针对应用程序尝试的API的特定容器”,您可以获得有关特定容器的信息,该信息属于“应用程序尝试”并由容器ID选择。

支持HTTP操作

  • 得到

查询参数支持

  没有

容器对象的元素

项目 数据类型 描述
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>

集群节点API

使用Nodes API,您可以获得资源的集合,每个资源代表一个节点。在此资源上运行GET操作时,将获得节点对象的集合。

支持HTTP操作

  • 得到

查询参数支持

  • 状态-以逗号分隔的列表形式指定的节点的状态,有效值为:NEW,RUNNING,UNHEALTHY,DECOMMISSIONING,DECOMMISSIONED,LOST,REBOOTED,SHUTDOWN

节点对象的元素

当您请求节点列表时,该信息将作为节点对象的集合返回。另请参见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>

集群节点API

节点资源包含有关集群中节点的信息。

URI

使用以下URI从由nodeid值标识的节点获取节点对象。

支持HTTP操作

  • 得到

查询参数支持

  没有

节点对象的元素

项目 数据类型 描述
该节点的机架位置
节点的状态-有效值为: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

以下部分涉及允许创建和修改应用程序的API。这些API当前处于Alpha状态,将来可能会更改。

群集新应用程序API

使用新应用程序API,您可以获取一个应用程序ID,该ID可以用作集群提交应用程序API的一部分来提交应用程序。该响应还包括群集上可用的最大资源能力。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 开机自检

查询参数支持

  没有

NewApplication对象的元素

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(提交应用程序)

提交应用程序API可用于提交应用程序。如果提交申请,则必须首先使用Cluster New Application API获得一个应用程序ID 。应用程序ID必须是请求正文的一部分。响应包含指向应用程序页面的URL,可用于跟踪应用程序的状态和进度。

支持HTTP操作

  • 开机自检

POST响应示例

POST请求可用于将应用程序提交到ResourceManager。如上所述,必须先获取一个应用程序ID。成功提交会产生202响应代码和Location标头,用于指定从何处获取有关该应用程序的信息。请注意,要提交应用,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

请注意,此功能目前处于Alpha阶段,将来可能会更改。

POST请求对象的元素

项目 数据类型 描述
应用程式编号 申请编号
应用名称 应用名称
队列 应将应用程序提交到的队列的名称
优先 整型 应用程序的优先级
容器规格 宾语 应用程序主容器启动上下文,如下所述
非托管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

使用应用程序状态API,您可以使用状态设置为“ KILLED”的PUT请求修改正在运行的应用程序的状态,从而查询提交的应用程序的状态以及杀死正在运行的应用程序。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须被授权杀死该应用程序。当前,您只能将状态更改为“已杀死”。尝试将状态更改为其他任何状态都会导致400错误响应。下面是未授权和错误请求错误的示例。当您执行成功的PUT时,初始响应可能是202。您可以通过重复PUT请求直到得到200,使用GET方法查询状态或查询应用信息并检查州。在以下示例中,我们重复PUT请求并获得200响应。

请注意,为了终止应用程序,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 得到

查询参数支持

  没有

appstate对象的元素

当您请求应用程序状态时,返回的信息包含以下字段

项目 数据类型 描述
应用程序状态-可以是“ 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

使用应用程序队列API,您可以查询提交的应用程序的队列,也可以使用指定目标队列的PUT请求将正在运行的应用程序移至另一个队列。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须获得移动应用程序的权限。当前,仅当您使用“容量”计划程序或“公平”计划程序时,才能移动该应用程序。

请注意,要移动应用程序,必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 得到

查询参数支持

  没有

征服对象的要素

当您请求应用程序状态时,返回的信息包含以下字段

项目 数据类型 描述
队列 应用程序队列

回应范例

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

使用应用程序优先级API,您可以使用指定目标优先级的PUT请求查询已提交应用程序的优先级以及正在运行或接受的应用程序的更新优先级。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须有权更新应用程序的优先级。当前,仅在使用Capacity Scheduler时才能更新应用程序优先级。

请注意,为了更新应用程序的优先级,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 得到

查询参数支持

  没有

适当对象的要素

当您请求应用程序状态时,返回的信息包含以下字段

项目 数据类型 描述
优先 整型 申请优先权

回应范例

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

委托令牌API可用于创建,更新和取消YARN ResourceManager委托令牌。所有委托令牌请求必须在Kerberos身份验证的连接上执行(使用SPNEGO)。在非kerberos连接上执行操作将导致FORBIDDEN响应。在续订令牌的情况下,只有在创建令牌时指定的续订者才能续签该令牌。禁止其他用户(包括所有者)更新令牌。应当注意,当取消或更新令牌时,通过设置头部来指定要取消或更新的令牌。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 开机自检
    • 删除

查询参数支持

  没有

委托令牌对象的元素

来自委托令牌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

反应体

  {
    “令牌”:“ MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUckiEZpigFHSJTKaQECFN9EMM9BzfPoDxu572EVUpzqhnSGE1JNX0​​RFTEVHQVRJT05fVE9LRU4A”
    “ 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”独立=“是”?>
<授权令牌> <令牌> MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUckgZ8yigFHSI4jMgcCFDTG8X6XFFn2udQngzSXQL8vWaKIE1JNX0​​RFTVH4L
  <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-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0​​RF
  内容类型: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-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0​​RF

响应头

  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-委托令牌:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0​​RF
接受: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:MgASY2xpZW50QEVYQU1QTEUuQ09NDHRlc3QtcmVuZXdlcgCKAUbjqcHHigFHB7ZFxwQCFKWD3znCkDSy6SQIjRCLDydxbxvgE1JNX0​​RFTEVH9VR
  内容类型:application / json; 字符集= UTF8
  {
    “ state”:“ KILLED”
  }

群集预留API列表

群集预留API可用于列出预留。列出预订时,用户必须根据队列,预订ID,开始时间或结束时间指定约束。用户还必须指定是否包括列出的预留的全部资源分配。结果页面返回一个响应,该响应包含与预订有关的信息,例如接受时间,用户,资源分配,预订ID和预订定义。

支持HTTP操作

  • 得到

查询参数支持

  • queue-队列名称,其中包含要列出的保留。如果未设置,则该值将默认为“默认”。
    • Reservation-id-将列出的预订的预订ID。如果存在此参数,则开始时间和结束时间将被忽略。
    • 开始时间-将列出在此开始时间之后结束的预订。如果未指定或无效,则默认为0。
    • 结束时间-将列出在此结束时间之后开始的预订。如果未指定或无效,则默认为Long.MaxValue。
    • include-resource-allocations-正确或错误。如果为true,则预留的资源分配将包含在响应中。如果为false,则响应中不包含任何资源分配。默认为false。

ReservationListInfo对象的元素

项目 数据类型 描述
预约 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)的大小。

GET响应示例

获取请求可用于列出对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创建

使用新的保留API,获取一个保留ID,然后将其用作集群保留API提交以提交保留的一部分。

此功能目前处于Alpha阶段,将来可能会更改。

支持HTTP操作

  • 开机自检

查询参数支持

  没有

新预订对象的元素

new-reservation响应包含以下元素:

项目 数据类型 描述
预订编号 新创建的预订ID

回应范例

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提交

群集预留API可用于提交预留。提交预订时,用户会在资源和所需时间方面指定约束条件。如果可以进行保留,则结果响应成功。如果使用预订ID多次提交预订,则如果预订定义相同,则请求将成功,但是只会创建一个预订。如果保留定义不同,则服务器将以错误响应进行响应。进行预留后,用户可以将其指定为Cluster Submit Applications API的一部分,从而使用提交预留的预留ID来访问资源。

支持HTTP操作

  • 开机自检

POST响应示例

POST请求可用于向ResourceManager提交保留。如上所述,成功后将返回保留ID(在答案的正文中)。成功提交将获得200条回应。请注意,要提交保留,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

请注意,此功能目前处于Alpha阶段,将来可能会更改。

POST请求对象的元素

项目 数据类型 描述
队列 您要提交到的(保留)队列
保留定义 宾语 一组约束,代表随着时间的推移对资源的需求。
预订编号 用于提交预订的预订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更新

可以使用集群保留API更新来更新现有的保留。保留的更新与上述提交的工作类似,但是用户提交要更新的现有保留的保留ID。语义是一试即换的,成功的操作将基于请求的update参数修改现有的保留,而执行失败将使现有的保留保持不变。

支持HTTP操作

  • 开机自检

POST响应示例

POST请求可用于更新对ResourceManager的保留。成功提交的结果为200,表示现有预订的就地更新(id不变)。请注意,为了更新预订,您必须为HTTP接口设置身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

请注意,此功能目前处于Alpha阶段,将来可能会更改。

POST请求对象的元素

项目 数据类型 描述
预订编号 要更新的预订的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删除

群集保留API删除可用于删除现有的保留。删除的工作类似于更新。该请求包含保留ID,如果成功,则取消保留,否则保留保留在系统中。

支持HTTP操作

  • 开机自检

POST响应示例

POST请求可用于删除对ResourceManager的保留。成功提交将产生200响应,表明删除成功。请注意,要删除保留,您必须为HTTP接口设置一个身份验证过滤器。该功能要求在HttpServletRequest中设置用户名。如果未设置任何过滤器,则响应将为“未经授权”响应。

请注意,此功能目前处于Alpha阶段,将来可能会更改。

POST请求对象的元素

项目 数据类型 描述
预订编号 要删除的预订的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

群集应用程序超时API可用于获取应用程序的所有已配置超时。在此资源上运行GET操作时,将返回超时对象的集合。每个超时对象都由超时类型,到期时间和以秒为单位的剩余时间组成。

支持HTTP操作

  • 得到

超时(应用程序超时)对象的元素

当您请求应用程序超时列表时,该信息将作为超时对象的集合返回。另请参见集群应用程序超时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>

群集应用程序超时API

群集应用程序超时资源包含有关超时的信息。

支持HTTP操作

  • 得到

超时(应用程序超时)对象的元素

项目 数据类型 描述
类型 超时类型。有效值是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>

群集应用程序超时更新API

为给定的超时类型更新应用程序的超时。

支持HTTP操作

超时对象的元素

项目 数据类型 描述
类型 超时类型。有效值是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

调度程序配置突变API提供了一种修改调度程序/队列配置和队列层次结构的方法。

请注意,此功能目前处于Alpha阶段,可能会有所更改。

支持HTTP操作

  • 得到

sched-conf对象的元素

项目 数据类型 描述
更新队列 宾语 其配置应更新的队列
添加队列 宾语 要添加到调度程序的队列以及该队列的配置
删除队列 要删除的队列的完整路径名
全局更新 地图 键值对映射以更新调度程序的全局配置

GET请求示例

获取请求用于检索当前加载到调度程序上下文中的调度程序配置。

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>

PUT请求示例

放置请求用于修改调度程序配置。成功的突变导致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.defaultroot.aroot.b,这个例子同时删除root.aroot.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
  传输编码:分块