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