要仅对NM启用跨域支持(CORS)(不对RM启用跨域支持),请设置以下配置参数:
在core-site.xml中,将org.apache.hadoop.security.HttpCrossOriginFilterInitializer添加到hadoop.http.filter.initializers中。在yarn-site.xml中,将yarn.nodemanager.webapp.cross-origin.enabled设置为true。
节点信息资源提供有关该特定节点的总体信息。
| 物产 | 数据类型 | 描述 | 
|---|---|---|
| ID | 长 | NodeManager ID | 
| nodeHostName | 串 | NodeManager的主机名 | 
| totalPmemAllocatedContainersMB | 长 | 分配给容器使用的物理内存量,以MB为单位 | 
| totalVmemAllocatedContainersMB | 长 | 分配给容器使用的虚拟内存量,以MB为单位 | 
| totalVCoresAllocatedContainers | 长 | 分配供容器使用的虚拟核心数 | 
| vmemCheckEnabled | 布尔值 | 是否为抢占启用了虚拟内存检查 | 
| pmemCheckEnabled | 布尔值 | 是否为抢占启用了物理内存检查 | 
| lastNodeUpdateTime | 长 | 收到运行状况报告的最后时间戳(自时期以来以毫秒为单位) | 
| nmStartupTime | 长 | 节点启动的时间戳(自纪元以来的毫秒数) | 
| 健康报告 | 串 | 节点的诊断健康报告 | 
| 节点健康 | 布尔值 | 节点是否健康的真/假指示 | 
| nodeManagerVersion | 串 | NodeManager的版本 | 
| nodeManagerBuildVersion | 串 | 具有版本,用户和校验和的NodeManager构建字符串 | 
| nodeManagerVersionBuiltOn | 串 | 构建NodeManager的时间戳(自纪元以来以毫秒为单位) | 
| hadoopVersion | 串 | Hadoop通用版本 | 
| hadoopBuildVersion | 串 | 具有构建版本,用户和校验和的Hadoop通用构建字符串 | 
| hadoopVersionBuiltOn | 串 | 建立hadoop common的时间戳(自纪元以来以毫秒为单位) | 
JSON回应
HTTP请求:
获取http:// nm-http-address:port / ws / v1 / node / info
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{
  “ nodeInfo”:{
    “ healthReport”:“”,
    “ totalVmemAllocatedContainersMB”:17203,
    “ totalPmemAllocatedContainersMB”:8192,
    “ totalVCoresAllocatedContainers”:8
    “ vmemCheckEnabled”:否,
    “ pmemCheckEnabled”:是的,
    “ lastNodeUpdateTime”:1485814574224,
    “ nodeHealthy”:是的,
    “ nodeManagerVersion”:“ 3.0.0”,
    “ nodeManagerBuildVersion”:“ 3.0.0”,
    “ nodeManagerVersionBuiltOn”:“ 2017-01-30T17:42Z”,
    “ hadoopVersion”:“ 3.0.0”,
    “ hadoopBuildVersion”:“ 3.0.0”,
    “ hadoopVersionBuiltOn”:“ 2017-01-30T17:39Z”,
    “ id”:“ host.domain.com:46077”,
    “ nodeHostName”:“ host.domain.com”,
    “ nmStartupTime”:1485800887841
  }
}
XML回应
HTTP请求:
接受:application / xml 获取http:// nm-http-address:port / ws / v1 / node / info
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:983 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?>
<nodeInfo>
    <healthReport> </ healthReport>
    <totalVmemAllocatedContainersMB> 17203 </ totalVmemAllocatedContainersMB>
    <totalPmemAllocatedContainersMB> 8192 </ totalPmemAllocatedContainersMB>
    <totalVCoresAllocatedContainers> 8 </ totalVCoresAllocatedContainers>
    <vmemCheckEnabled> false </ vmemCheckEnabled>
    <pmemCheckEnabled> true </ pmemCheckEnabled>
    <lastNodeUpdateTime> 1485815774203 </ lastNodeUpdateTime>
    <nodeHealthy> true </ nodeHealthy>
    <nodeManagerVersion> 3.0.0 </ nodeManagerVersion>
    <nodeManagerBuildVersion> 3.0.0 </ nodeManagerBuildVersion>
    <nodeManagerVersionBuiltOn> 2017-01-30T17:42Z </ nodeManagerVersionBuiltOn>
    <hadoopVersion> 3.0.0 </ hadoopVersion>
    <hadoopBuildVersion> 3.0.0 </ hadoopBuildVersion>
    <hadoopVersionBuiltOn> 2017-01-30T17:39Z </ hadoopVersionBuiltOn>
    <id> host.domain.com:46077 </ id>
    <nodeHostName> host.domain.com </ nodeHostName>
    <nmStartupTime> 1485800887841 </ nmStartupTime>
</ nodeInfo>
使用Applications API,您可以获得资源的集合,每个资源代表一个应用程序。在此资源上运行GET操作时,将获得应用程序对象的集合。另请参阅应用程序API,以了解应用程序对象的语法。
当您请求应用程序列表时,该信息将作为应用程序对象的集合返回。另请参阅应用程序API,了解应用程序对象的语法。
| 物产 | 数据类型 | 描述 | 
|---|---|---|
| 应用程式 | 应用程序对象数组(JSON)/零个或多个应用程序对象(XML) | 应用程序对象的集合 | 
JSON回应
HTTP请求:
获取http:// nm-http-address:port / ws / v1 / node / apps
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{
   “应用” : {
      “ app”:[
         {
            “ containerids”:[
               “ container_1326121700862_0003_01_000001”,
               “容器_1326121700862_0003_01_000002”
            ],
            “ user”:“ user1”,
            “ id”:“ application_1326121700862_0003”,
            “ state”:“正在运行”
         },
         {
            “ user”:“ user1”,
            “ id”:“ application_1326121700862_0002”,
            “ state”:“完成”
         }
      ]
   }
}
XML回应
HTTP请求:
获取http:// nm-http-address:port / ws / v1 / node / apps 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:400 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?>
<apps>
  <app>
    <id> application_1326121700862_0002 </ id>
    <state>完成</ state>
    <user> user1 </ user>
  </ app>
  <app>
    <id> application_1326121700862_0003 </ id>
    <状态>运行中</状态>
    <user> user1 </ user>
    <containerids> container_1326121700862_0003_01_000002 </ containerids>
    <containerids> container_1326121700862_0003_01_000001 </ containerids>
  </ app>
</ apps>
应用程序资源包含有关已在此NodeManager上运行或正在运行的特定应用程序的信息。
| 物产 | 数据类型 | 描述 | 
|---|---|---|
| ID | 串 | 申请编号 | 
| 用户 | 串 | 启动应用程序的用户 | 
| 州 | 串 | 应用程序的状态-有效状态为:新,正在初始化,正在运行,FINISHING_CONTAINERS_WAIT,APPLICATION_RESOURCES_CLEANINGUP,已完成 | 
| 容器编号 | containerids(JSON)/零个或多个containerids(XML)的数组 | 应用程序当前在此节点上使用的容器标识列表。如果不存在,则该应用程序当前没有容器在运行。 | 
JSON回应
HTTP请求:
GET http:// nm-http-address:port / ws / v1 / node / apps / application_1326121700862_0005
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{
   “ app”:{
      “ containerids”:[
         “ container_1326121700862_0005_01_000003”,
         “容器_1326121700862_0005_01_000001”
      ],
      “ user”:“ user1”,
      “ id”:“ application_1326121700862_0005”,
      “ state”:“正在运行”
   }
}
XML回应
HTTP请求:
GET http:// nm-http-address:port / ws / v1 / node / apps / application_1326121700862_0005 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:281 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <app> <id> application_1326121700862_0005 </ id> <状态>运行中</状态> <user> user1 </ user> <containerids> container_1326121700862_0005_01_000003 </ containerids> <containerids> container_1326121700862_0005_01_000001 </ containerids> </ app>
使用容器API,您可以获得资源的集合,每个资源代表一个容器。在此资源上运行GET操作时,将获得容器对象的集合。另请参见Container API,以获取容器对象的语法。
当您请求容器列表时,该信息将作为容器对象的集合返回。另请参见Container API,以获取容器对象的语法。
| 物产 | 数据类型 | 描述 | 
|---|---|---|
| 货柜 | 容器对象数组(JSON)/零个或多个容器对象(XML) | 容器对象的集合 | 
JSON回应
HTTP请求:
获取http:// nm-http-address:port / ws / v1 / node / containers
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{
   “容器”:{
      “容器” : [
         {
            “ nodeId”:“ host.domain.com:8041”,
            “ totalMemoryNeededMB”:2048,
            “ totalVCoresNeeded”:1,
            “ state”:“ RUNNING”,
            “诊断”:“”,
            “ containerLogsLink”:“ http://host.domain.com:8042/node/containerlogs/container_1326121700862_0006_01_000001/user1”,
            “ user”:“ user1”,
            “ id”:“ container_1326121700862_0006_01_000001”,
            “ exitCode”:-1000,
            “ executionType”:“ GUARANTEED”,
            “ containerLogFiles”:[
              “ stdout”,
              “ stderr”,
              “系统日志”
            ]
         },
         {
            “ nodeId”:“ host.domain.com:8041”,
            “ totalMemoryNeededMB”:2048,
            “ totalVCoresNeeded”:2
            “ state”:“ RUNNING”,
            “诊断”:“”,
            “ containerLogsLink”:“ http://host.domain.com:8042/node/containerlogs/container_1326121700862_0006_01_000003/user1”,
            “ user”:“ user1”,
            “ id”:“ container_1326121700862_0006_01_000003”,
            “ exitCode”:-1000,
            “ executionType”:“ GUARANTEED”,
            “ containerLogFiles”:[
              “ stdout”,
              “ stderr”,
              “系统日志”
            ]
         }
      ]
   }
}
XML回应
HTTP请求:
获取http:// nm-http-address:port / ws / v1 / node / containers 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:988 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?>
<容器>
  <容器>
    <id> container_1326121700862_0006_01_000001 </ id>
    <状态>运行中</状态>
    <exitCode> -1000 </ exitCode>
    <diagnostics />
    <user> user1 </ user>
    <totalMemoryNeededMB> 2048 </ totalMemoryNeededMB>
    <totalVCoresNeeded> 1 </ totalVCoresNeeded>
    <containerLogsLink> http://host.domain.com:8042/node/containerlogs/container_1326121700862_0006_01_000001/user1 </ containerLogsLink>
    <nodeId> host.domain.com:8041 </ nodeId>
    <executionType>已保证</ executionType>
    <containerLogFiles> stdout </ containerLogFiles>
    <containerLogFiles> stderr </ containerLogFiles>
    <containerLogFiles> syslog </ containerLogFiles>
  </ container>
  <容器>
    <id> container_1326121700862_0006_01_000003 </ id>
    <state>完成</ state>
    <exitCode> 0 </ exitCode>
    <diagnostics>容器被ApplicationMaster杀死。</ diagnostics>
    <user> user1 </ user>
    <totalMemoryNeededMB> 2048 </ totalMemoryNeededMB>
    <totalVCoresNeeded> 2 </ totalVCoresNeeded>
    <containerLogsLink> http://host.domain.com:8042/node/containerlogs/container_1326121700862_0006_01_000003/user1 </ containerLogsLink>
    <nodeId> host.domain.com:8041 </ nodeId>
    <executionType>已保证</ executionType>
    <containerLogFiles> stdout </ containerLogFiles>
    <containerLogFiles> stderr </ containerLogFiles>
    <containerLogFiles> syslog </ containerLogFiles>
  </ container>
</容器>
容器资源包含有关在此NodeManager上运行的特定容器的信息。
| 物产 | 数据类型 | 描述 | 
|---|---|---|
| ID | 串 | 容器编号 | 
| 州 | 串 | 容器状态-有效状态为:新,已定位,已定位_失败,已定位,正在运行,EXITED_WITH_SUCCESS,EXITED_WITH_FAILURE,杀死,CONTAINER_CLEANEDUP_AFTER_KILL,CONTAINER_RESOURCES_CLEANINGUP,已完成 | 
| nodeId | 串 | 容器所在节点的ID | 
| containerLogsLink | 串 | 容器日志的http链接 | 
| 用户 | 串 | 启动容器的用户的用户名 | 
| exitCode | 整型 | 容器的退出代码 | 
| 诊断 | 串 | 故障容器的诊断消息 | 
| totalMemoryNeededMB | 长 | 容器所需的总内存量(以MB为单位) | 
| 需要的总VCores | 长 | 容器所需的虚拟核心总数 | 
| executionType | 串 | 保证类型或机会类型的容器 | 
| containerLogFiles | 字符串数组 | 容器日志文件名 | 
JSON回应
HTTP请求:
GET http:// nm-http-address:port / ws / v1 / nodes / containers / container_1326121700862_0007_01_000001
响应标题:
HTTP / 1.1 200 OK 内容类型:application / json 传输编码:分块 服务器:码头(6.1.26)
响应主体:
{
   “容器” : {
      “ nodeId”:“ host.domain.com:8041”,
      “ totalMemoryNeededMB”:2048,
      “ totalVCoresNeeded”:1,
      “ state”:“ RUNNING”,
      “诊断”:“”,
      “ containerLogsLink”:“ http://host.domain.com:8042/node/containerlogs/container_1326121700862_0007_01_000001/user1”,
      “ user”:“ user1”,
      “ id”:“ container_1326121700862_0007_01_000001”,
      “ exitCode”:-1000,
      “ executionType”:“ GUARANTEED”,
      “ containerLogFiles”:[
        “ stdout”,
        “ stderr”,
        “系统日志”
      ]
   }
}
XML回应
HTTP请求:
GET http:// nm-http-address:port / ws / v1 / node / containers / container_1326121700862_0007_01_000001 接受:application / xml
响应标题:
HTTP / 1.1 200 OK 内容类型:application / xml 内容长度:491 服务器:码头(6.1.26)
响应主体:
<?xml版本=“ 1.0”编码=“ UTF-8”独立=“是”?> <容器> <id> container_1326121700862_0007_01_000001 </ id> <状态>运行中</状态> <exitCode> -1000 </ exitCode> <diagnostics /> <user> user1 </ user> <totalMemoryNeededMB> 2048 </ totalMemoryNeededMB> <totalVCoresNeeded> 1 </ totalVCoresNeeded> <containerLogsLink> http://host.domain.com:8042/node/containerlogs/container_1326121700862_0007_01_000001/user1 </ containerLogsLink> <nodeId> host.domain.com:8041 </ nodeId> <executionType>已保证</ executionType> <containerLogFiles> stdout </ containerLogFiles> <containerLogFiles> stderr </ containerLogFiles> <containerLogFiles> syslog </ containerLogFiles> </ container>