YARN-5286. Add RPC port info in RM web service's response when getting app status. (Jun Gong via Varun Saxena).
This commit is contained in:
parent
4ea87cb38c
commit
22ca536b0c
|
@ -82,6 +82,7 @@ public class AppInfo {
|
|||
protected long elapsedTime;
|
||||
protected String amContainerLogs;
|
||||
protected String amHostHttpAddress;
|
||||
private String amRPCAddress;
|
||||
protected long allocatedMB;
|
||||
protected long allocatedVCores;
|
||||
protected int runningContainers;
|
||||
|
@ -168,7 +169,9 @@ public class AppInfo {
|
|||
masterContainer.getId().toString(), app.getUser());
|
||||
this.amHostHttpAddress = masterContainer.getNodeHttpAddress();
|
||||
}
|
||||
|
||||
|
||||
this.amRPCAddress = getAmRPCAddressFromRMAppAttempt(attempt);
|
||||
|
||||
ApplicationResourceUsageReport resourceReport = attempt
|
||||
.getApplicationResourceUsageReport();
|
||||
if (resourceReport != null) {
|
||||
|
@ -281,6 +284,22 @@ public class AppInfo {
|
|||
return this.amHostHttpAddress;
|
||||
}
|
||||
|
||||
public String getAmRPCAddress() {
|
||||
return amRPCAddress;
|
||||
}
|
||||
|
||||
static public String getAmRPCAddressFromRMAppAttempt(RMAppAttempt attempt) {
|
||||
String amRPCAddress = null;
|
||||
if (attempt != null) {
|
||||
String amHost = attempt.getHost();
|
||||
int amRpcPort = attempt.getRpcPort();
|
||||
if (!"N/A".equals(amHost) && amRpcPort != -1) {
|
||||
amRPCAddress = amHost + ":" + amRpcPort;
|
||||
}
|
||||
}
|
||||
return amRPCAddress;
|
||||
}
|
||||
|
||||
public boolean amContainerLogsExist() {
|
||||
return this.amContainerLogsExist;
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
|
|||
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppInfo;
|
||||
import org.apache.hadoop.yarn.webapp.GenericExceptionHandler;
|
||||
import org.apache.hadoop.yarn.webapp.JerseyTestBase;
|
||||
import org.apache.hadoop.yarn.webapp.WebServicesTestUtils;
|
||||
|
@ -1316,7 +1317,8 @@ public class TestRMWebServicesApps extends JerseyTestBase {
|
|||
WebServicesTestUtils.getXmlString(element, "logAggregationStatus"),
|
||||
WebServicesTestUtils.getXmlBoolean(element, "unmanagedApplication"),
|
||||
WebServicesTestUtils.getXmlString(element, "appNodeLabelExpression"),
|
||||
WebServicesTestUtils.getXmlString(element, "amNodeLabelExpression"));
|
||||
WebServicesTestUtils.getXmlString(element, "amNodeLabelExpression"),
|
||||
WebServicesTestUtils.getXmlString(element, "amRPCAddress"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1335,6 +1337,12 @@ public class TestRMWebServicesApps extends JerseyTestBase {
|
|||
expectedNumberOfElements++;
|
||||
amNodeLabelExpression = info.getString("amNodeLabelExpression");
|
||||
}
|
||||
String amRPCAddress = null;
|
||||
if (AppInfo.getAmRPCAddressFromRMAppAttempt(app.getCurrentAppAttempt())
|
||||
!= null) {
|
||||
expectedNumberOfElements++;
|
||||
amRPCAddress = info.getString("amRPCAddress");
|
||||
}
|
||||
assertEquals("incorrect number of elements", expectedNumberOfElements,
|
||||
info.length());
|
||||
|
||||
|
@ -1357,7 +1365,8 @@ public class TestRMWebServicesApps extends JerseyTestBase {
|
|||
info.getString("logAggregationStatus"),
|
||||
info.getBoolean("unmanagedApplication"),
|
||||
appNodeLabelExpression,
|
||||
amNodeLabelExpression);
|
||||
amNodeLabelExpression,
|
||||
amRPCAddress);
|
||||
}
|
||||
|
||||
public void verifyAppInfoGeneric(RMApp app, String id, String user,
|
||||
|
@ -1370,9 +1379,8 @@ public class TestRMWebServicesApps extends JerseyTestBase {
|
|||
int preemptedResourceMB, int preemptedResourceVCores,
|
||||
int numNonAMContainerPreempted, int numAMContainerPreempted,
|
||||
String logAggregationStatus, boolean unmanagedApplication,
|
||||
String appNodeLabelExpression, String amNodeLabelExpression)
|
||||
throws JSONException,
|
||||
Exception {
|
||||
String appNodeLabelExpression, String amNodeLabelExpression,
|
||||
String amRPCAddress) throws JSONException, Exception {
|
||||
|
||||
WebServicesTestUtils.checkStringMatch("id", app.getApplicationId()
|
||||
.toString(), id);
|
||||
|
@ -1433,6 +1441,9 @@ public class TestRMWebServicesApps extends JerseyTestBase {
|
|||
assertEquals("unmanagedApplication doesn't match",
|
||||
app.getAMResourceRequest().getNodeLabelExpression(),
|
||||
amNodeLabelExpression);
|
||||
assertEquals("amRPCAddress",
|
||||
AppInfo.getAmRPCAddressFromRMAppAttempt(app.getCurrentAppAttempt()),
|
||||
amRPCAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -1381,6 +1381,7 @@ Response Body:
|
|||
"clusterId" : 1326815542473,
|
||||
"finalStatus" : "SUCCEEDED",
|
||||
"amHostHttpAddress" : "host.domain.com:8042",
|
||||
"amRPCAddress" : "host.domain.com:4201",
|
||||
"progress" : 100,
|
||||
"name" : "word count",
|
||||
"startedTime" : 1326815573334,
|
||||
|
@ -1410,6 +1411,7 @@ Response Body:
|
|||
"clusterId" : 1326815542473,
|
||||
"finalStatus" : "SUCCEEDED",
|
||||
"amHostHttpAddress" : "host.domain.com:8042",
|
||||
"amRPCAddress" : "host.domain.com:4202",
|
||||
"progress" : 100,
|
||||
"name" : "Sleep job",
|
||||
"startedTime" : 1326815641380,
|
||||
|
@ -1472,6 +1474,7 @@ Response Body:
|
|||
<elapsedTime>25196</elapsedTime>
|
||||
<amContainerLogs>http://host.domain.com:8042/node/containerlogs/container_1326815542473_0001_01_000001</amContainerLogs>
|
||||
<amHostHttpAddress>host.domain.com:8042</amHostHttpAddress>
|
||||
<amRPCAddress>host.domain.com:4201</amRPCAddress>
|
||||
<allocatedMB>0</allocatedMB>
|
||||
<allocatedVCores>0</allocatedVCores>
|
||||
<runningContainers>0</runningContainers>
|
||||
|
@ -1501,6 +1504,7 @@ Response Body:
|
|||
<elapsedTime>148166</elapsedTime>
|
||||
<amContainerLogs>http://host.domain.com:8042/node/containerlogs/container_1326815542473_0002_01_000001</amContainerLogs>
|
||||
<amHostHttpAddress>host.domain.com:8042</amHostHttpAddress>
|
||||
<amRPCAddress>host.domain.com:4202</amRPCAddress>
|
||||
<allocatedMB>0</allocatedMB>
|
||||
<allocatedVCores>0</allocatedVCores>
|
||||
<runningContainers>0</runningContainers>
|
||||
|
@ -1664,6 +1668,7 @@ Note that depending on security settings a user might not be able to see all the
|
|||
| elapsedTime | long | The elapsed time since the application started (in ms) |
|
||||
| amContainerLogs | string | The URL of the application master container logs |
|
||||
| amHostHttpAddress | string | The nodes http address of the application master |
|
||||
| amRPCAddress | string | The RPC address of the application master |
|
||||
| allocatedMB | int | The sum of memory in MB allocated to the application's running containers |
|
||||
| allocatedVCores | int | The sum of virtual cores allocated to the application's running containers |
|
||||
| runningContainers | int | The number of containers currently running for the application |
|
||||
|
@ -1703,6 +1708,7 @@ Response Body:
|
|||
"clusterId" : 1326821518301,
|
||||
"finalStatus" : "SUCCEEDED",
|
||||
"amHostHttpAddress" : "host.domain.com:8042",
|
||||
"amRPCAddress" : "host.domain.com:4201",
|
||||
"progress" : 100,
|
||||
"name" : "Sleep job",
|
||||
"applicationType" : "Yarn",
|
||||
|
@ -1756,6 +1762,7 @@ Response Body:
|
|||
<elapsedTime>446748</elapsedTime>
|
||||
<amContainerLogs>http://host.domain.com:8042/node/containerlogs/container_1326821518301_0005_01_000001</amContainerLogs>
|
||||
<amHostHttpAddress>host.domain.com:8042</amHostHttpAddress>
|
||||
<amRPCAddress>host.domain.com:4201</amRPCAddress>
|
||||
<memorySeconds>151730</memorySeconds>
|
||||
<vcoreSeconds>103</vcoreSeconds>
|
||||
<unmanagedApplication>false</unmanagedApplication>
|
||||
|
|
Loading…
Reference in New Issue