@SuppressWarnings("unchecked") private RegisterApplicationMasterResponse registerApplicationMaster() throws YarnException, IOException { RegisterApplicationMasterRequest request = RegisterApplicationMasterRequest.newInstance(this.appHostName, this.appHostPort, this.appTrackingUrl); if (!this.placementConstraints.isEmpty()) { request.setPlacementConstraints(this.placementConstraints); } RegisterApplicationMasterResponse response = rmClient.registerApplicationMaster(request); synchronized (this) { lastResponseId = 0; if (!response.getNMTokensFromPreviousAttempts().isEmpty()) { populateNMTokens(response.getNMTokensFromPreviousAttempts()); } this.resourceProfilesMap = response.getResourceProfiles(); List<Container> prevContainers = response.getContainersFromPreviousAttempts(); AMRMClientUtils.removeFromOutstandingSchedulingRequests(prevContainers, this.outstandingSchedRequests); } return response; }
.registerApplicationMaster(appMasterHostname, appMasterRpcPort, appMasterTrackingUrl, placementConstraintMap); resourceProfiles = response.getResourceProfiles(); ResourceUtils.reinitializeResources(response.getResourceTypes());
MockAM am1 = rm.sendAMLaunched(attempt1.getAppAttemptId()); RegisterApplicationMasterResponse resp = am1.registerAppAttempt(); Assert.assertEquals(0, resp.getResourceProfiles().size()); rm.stop(); conf.setBoolean(YarnConfiguration.RM_RESOURCE_PROFILES_ENABLED, true); am1 = rm.sendAMLaunched(attempt1.getAppAttemptId()); resp = am1.registerAppAttempt(); Assert.assertEquals(3, resp.getResourceProfiles().size()); Assert.assertEquals(Resource.newInstance(1024, 1), resp.getResourceProfiles().get("minimum")); Assert.assertEquals(Resource.newInstance(2048, 2), resp.getResourceProfiles().get("default")); Assert.assertEquals(Resource.newInstance(8192, 4), resp.getResourceProfiles().get("maximum")); rm.stop();