Java Code Examples for org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse#getApplicationList()

The following examples show how to use org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse#getApplicationList() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestApplicationHistoryClientService.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Test
public void testApplications() throws IOException, YarnException {
  ApplicationId appId = null;
  appId = ApplicationId.newInstance(0, 1);
  ApplicationId appId1 = ApplicationId.newInstance(0, 2);
  GetApplicationsRequest request = GetApplicationsRequest.newInstance();
  GetApplicationsResponse response =
      clientService.getApplications(request);
  List<ApplicationReport> appReport = response.getApplicationList();
  Assert.assertNotNull(appReport);
  Assert.assertEquals(appId, appReport.get(0).getApplicationId());
  Assert.assertEquals(appId1, appReport.get(1).getApplicationId());
}
 
Example 2
Source File: AHSClientImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public List<ApplicationReport> getApplications() throws YarnException,
    IOException {
  GetApplicationsRequest request = GetApplicationsRequest.newInstance(null,
      null);
  GetApplicationsResponse response = ahsClient.getApplications(request);
  return response.getApplicationList();
}
 
Example 3
Source File: YarnClientImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public List<ApplicationReport> getApplications(Set<String> applicationTypes,
    EnumSet<YarnApplicationState> applicationStates) throws YarnException,
    IOException {
  GetApplicationsRequest request =
      GetApplicationsRequest.newInstance(applicationTypes, applicationStates);
  GetApplicationsResponse response = rmClient.getApplications(request);
  return response.getApplicationList();
}
 
Example 4
Source File: TestApplicationHistoryClientService.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Test
public void testApplications() throws IOException, YarnException {
  ApplicationId appId = null;
  appId = ApplicationId.newInstance(0, 1);
  ApplicationId appId1 = ApplicationId.newInstance(0, 2);
  GetApplicationsRequest request = GetApplicationsRequest.newInstance();
  GetApplicationsResponse response =
      clientService.getApplications(request);
  List<ApplicationReport> appReport = response.getApplicationList();
  Assert.assertNotNull(appReport);
  Assert.assertEquals(appId, appReport.get(0).getApplicationId());
  Assert.assertEquals(appId1, appReport.get(1).getApplicationId());
}
 
Example 5
Source File: AHSClientImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public List<ApplicationReport> getApplications() throws YarnException,
    IOException {
  GetApplicationsRequest request = GetApplicationsRequest.newInstance(null,
      null);
  GetApplicationsResponse response = ahsClient.getApplications(request);
  return response.getApplicationList();
}
 
Example 6
Source File: YarnClientImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public List<ApplicationReport> getApplications(Set<String> applicationTypes,
    EnumSet<YarnApplicationState> applicationStates) throws YarnException,
    IOException {
  GetApplicationsRequest request =
      GetApplicationsRequest.newInstance(applicationTypes, applicationStates);
  GetApplicationsResponse response = rmClient.getApplications(request);
  return response.getApplicationList();
}
 
Example 7
Source File: RMCommunicator.java    From jumbune with GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * Get list of all applications known to RM.
 *
 * @return list of application report
 * @throws YarnException the yarn exception
 * @throws IOException Signals that an I/O exception has occurred.
 */
public List<ApplicationReport> getApplications() throws YarnException, IOException{
	if ((System.currentTimeMillis() - lastCacheUpdateTime) > 60000) {
		synchronized (this) {
			if ( (System.currentTimeMillis() - lastCacheUpdateTime) > 60000) {
				GetApplicationsResponse response = proxy.getApplications(GetApplicationsRequest.newInstance());
				appListCache = response.getApplicationList();
				lastCacheUpdateTime = System.currentTimeMillis();
			}
		}
	}
	return appListCache;
}
 
Example 8
Source File: TestRM.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Test (timeout = 80000)
public void testInvalidateAMHostPortWhenAMFailedOrKilled() throws Exception {
  conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS, 1);
  MockRM rm1 = new MockRM(conf);
  rm1.start();

  // a succeeded app
  RMApp app1 = rm1.submitApp(200);
  MockNM nm1 =
      new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
  nm1.registerNode();
  MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
  MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);

  // a failed app
  RMApp app2 = rm1.submitApp(200);
  MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
  nm1.nodeHeartbeat(am2.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
  am2.waitForState(RMAppAttemptState.FAILED);
  rm1.waitForState(app2.getApplicationId(), RMAppState.FAILED);

  // a killed app
  RMApp app3 = rm1.submitApp(200);
  MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
  rm1.killApp(app3.getApplicationId());
  rm1.waitForState(app3.getApplicationId(), RMAppState.KILLED);
  rm1.waitForState(am3.getApplicationAttemptId(), RMAppAttemptState.KILLED);

  GetApplicationsRequest request1 =
      GetApplicationsRequest.newInstance(EnumSet.of(
        YarnApplicationState.FINISHED, YarnApplicationState.KILLED,
        YarnApplicationState.FAILED));
  GetApplicationsResponse response1 =
      rm1.getClientRMService().getApplications(request1);
  List<ApplicationReport> appList1 = response1.getApplicationList();

  Assert.assertEquals(3, appList1.size());
  for (ApplicationReport report : appList1) {
    // killed/failed apps host and rpc port are invalidated.
    if (report.getApplicationId().equals(app2.getApplicationId())
        || report.getApplicationId().equals(app3.getApplicationId())) {
      Assert.assertEquals("N/A", report.getHost());
      Assert.assertEquals(-1, report.getRpcPort());
    }
    // succeeded app's host and rpc port is not invalidated
    if (report.getApplicationId().equals(app1.getApplicationId())) {
      Assert.assertFalse(report.getHost().equals("N/A"));
      Assert.assertTrue(report.getRpcPort() != -1);
    }
  }
}
 
Example 9
Source File: TestRMRestart.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Test (timeout = 60000)
public void testRMRestartGetApplicationList() throws Exception {
  conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS, 1);
  MemoryRMStateStore memStore = new MemoryRMStateStore();
  memStore.init(conf);

  // start RM
  MockRM rm1 = createMockRM(conf, memStore);
  rm1.start();
  MockNM nm1 =
      new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
  nm1.registerNode();

  // a succeeded app.
  RMApp app0 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am0 = launchAM(app0, rm1, nm1);
  finishApplicationMaster(app0, rm1, nm1, am0);

  // a failed app.
  RMApp app1 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am1 = launchAM(app1, rm1, nm1);
  // fail the AM by sending CONTAINER_FINISHED event without registering.
  nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
  am1.waitForState(RMAppAttemptState.FAILED);
  rm1.waitForState(app1.getApplicationId(), RMAppState.FAILED);

  // a killed app.
  RMApp app2 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am2 = launchAM(app2, rm1, nm1);
  rm1.killApp(app2.getApplicationId());
  rm1.waitForState(app2.getApplicationId(), RMAppState.KILLED);
  rm1.waitForState(am2.getApplicationAttemptId(), RMAppAttemptState.KILLED);

  // restart rm

  MockRM rm2 = new MockRM(conf, memStore) {
    @Override
    protected RMAppManager createRMAppManager() {
      return spy(super.createRMAppManager());
    }
  };
  rms.add(rm2);
  rm2.start();

  GetApplicationsRequest request1 =
      GetApplicationsRequest.newInstance(EnumSet.of(
        YarnApplicationState.FINISHED, YarnApplicationState.KILLED,
        YarnApplicationState.FAILED));
  GetApplicationsResponse response1 =
      rm2.getClientRMService().getApplications(request1);
  List<ApplicationReport> appList1 = response1.getApplicationList();

  // assert all applications exist according to application state after RM
  // restarts.
  boolean forApp0 = false, forApp1 = false, forApp2 = false;
  for (ApplicationReport report : appList1) {
    if (report.getApplicationId().equals(app0.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.FINISHED,
        report.getYarnApplicationState());
      forApp0 = true;
    }
    if (report.getApplicationId().equals(app1.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.FAILED,
        report.getYarnApplicationState());
      forApp1 = true;
    }
    if (report.getApplicationId().equals(app2.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.KILLED,
        report.getYarnApplicationState());
      forApp2 = true;
    }
  }
  Assert.assertTrue(forApp0 && forApp1 && forApp2);

  // assert all applications exist according to application type after RM
  // restarts.
  Set<String> appTypes = new HashSet<String>();
  appTypes.add("myType");
  GetApplicationsRequest request2 =
      GetApplicationsRequest.newInstance(appTypes);
  GetApplicationsResponse response2 =
      rm2.getClientRMService().getApplications(request2);
  List<ApplicationReport> appList2 = response2.getApplicationList();
  Assert.assertTrue(3 == appList2.size());

  // check application summary is logged for the completed apps after RM restart.
  verify(rm2.getRMAppManager(), times(3)).logApplicationSummary(
    isA(ApplicationId.class));
}
 
Example 10
Source File: TestRM.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Test (timeout = 80000)
public void testInvalidateAMHostPortWhenAMFailedOrKilled() throws Exception {
  conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS, 1);
  MockRM rm1 = new MockRM(conf);
  rm1.start();

  // a succeeded app
  RMApp app1 = rm1.submitApp(200);
  MockNM nm1 =
      new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
  nm1.registerNode();
  MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
  MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);

  // a failed app
  RMApp app2 = rm1.submitApp(200);
  MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
  nm1.nodeHeartbeat(am2.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
  am2.waitForState(RMAppAttemptState.FAILED);
  rm1.waitForState(app2.getApplicationId(), RMAppState.FAILED);

  // a killed app
  RMApp app3 = rm1.submitApp(200);
  MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
  rm1.killApp(app3.getApplicationId());
  rm1.waitForState(app3.getApplicationId(), RMAppState.KILLED);
  rm1.waitForState(am3.getApplicationAttemptId(), RMAppAttemptState.KILLED);

  GetApplicationsRequest request1 =
      GetApplicationsRequest.newInstance(EnumSet.of(
        YarnApplicationState.FINISHED, YarnApplicationState.KILLED,
        YarnApplicationState.FAILED));
  GetApplicationsResponse response1 =
      rm1.getClientRMService().getApplications(request1);
  List<ApplicationReport> appList1 = response1.getApplicationList();

  Assert.assertEquals(3, appList1.size());
  for (ApplicationReport report : appList1) {
    // killed/failed apps host and rpc port are invalidated.
    if (report.getApplicationId().equals(app2.getApplicationId())
        || report.getApplicationId().equals(app3.getApplicationId())) {
      Assert.assertEquals("N/A", report.getHost());
      Assert.assertEquals(-1, report.getRpcPort());
    }
    // succeeded app's host and rpc port is not invalidated
    if (report.getApplicationId().equals(app1.getApplicationId())) {
      Assert.assertFalse(report.getHost().equals("N/A"));
      Assert.assertTrue(report.getRpcPort() != -1);
    }
  }
}
 
Example 11
Source File: TestRMRestart.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Test (timeout = 60000)
public void testRMRestartGetApplicationList() throws Exception {
  conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS, 1);
  MemoryRMStateStore memStore = new MemoryRMStateStore();
  memStore.init(conf);

  // start RM
  MockRM rm1 = createMockRM(conf, memStore);
  rm1.start();
  MockNM nm1 =
      new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
  nm1.registerNode();

  // a succeeded app.
  RMApp app0 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am0 = launchAM(app0, rm1, nm1);
  finishApplicationMaster(app0, rm1, nm1, am0);

  // a failed app.
  RMApp app1 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am1 = launchAM(app1, rm1, nm1);
  // fail the AM by sending CONTAINER_FINISHED event without registering.
  nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
  am1.waitForState(RMAppAttemptState.FAILED);
  rm1.waitForState(app1.getApplicationId(), RMAppState.FAILED);

  // a killed app.
  RMApp app2 = rm1.submitApp(200, "name", "user", null,
    false, "default", 1, null, "myType");
  MockAM am2 = launchAM(app2, rm1, nm1);
  rm1.killApp(app2.getApplicationId());
  rm1.waitForState(app2.getApplicationId(), RMAppState.KILLED);
  rm1.waitForState(am2.getApplicationAttemptId(), RMAppAttemptState.KILLED);

  // restart rm

  MockRM rm2 = new MockRM(conf, memStore) {
    @Override
    protected RMAppManager createRMAppManager() {
      return spy(super.createRMAppManager());
    }
  };
  rms.add(rm2);
  rm2.start();

  GetApplicationsRequest request1 =
      GetApplicationsRequest.newInstance(EnumSet.of(
        YarnApplicationState.FINISHED, YarnApplicationState.KILLED,
        YarnApplicationState.FAILED));
  GetApplicationsResponse response1 =
      rm2.getClientRMService().getApplications(request1);
  List<ApplicationReport> appList1 = response1.getApplicationList();

  // assert all applications exist according to application state after RM
  // restarts.
  boolean forApp0 = false, forApp1 = false, forApp2 = false;
  for (ApplicationReport report : appList1) {
    if (report.getApplicationId().equals(app0.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.FINISHED,
        report.getYarnApplicationState());
      forApp0 = true;
    }
    if (report.getApplicationId().equals(app1.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.FAILED,
        report.getYarnApplicationState());
      forApp1 = true;
    }
    if (report.getApplicationId().equals(app2.getApplicationId())) {
      Assert.assertEquals(YarnApplicationState.KILLED,
        report.getYarnApplicationState());
      forApp2 = true;
    }
  }
  Assert.assertTrue(forApp0 && forApp1 && forApp2);

  // assert all applications exist according to application type after RM
  // restarts.
  Set<String> appTypes = new HashSet<String>();
  appTypes.add("myType");
  GetApplicationsRequest request2 =
      GetApplicationsRequest.newInstance(appTypes);
  GetApplicationsResponse response2 =
      rm2.getClientRMService().getApplications(request2);
  List<ApplicationReport> appList2 = response2.getApplicationList();
  Assert.assertTrue(3 == appList2.size());

  // check application summary is logged for the completed apps after RM restart.
  verify(rm2.getRMAppManager(), times(3)).logApplicationSummary(
    isA(ApplicationId.class));
}