List of usage examples for org.apache.hadoop.yarn.api.records FinalApplicationStatus SUCCEEDED
FinalApplicationStatus SUCCEEDED
To view the source code for org.apache.hadoop.yarn.api.records FinalApplicationStatus SUCCEEDED.
Click Source Link
From source file:com.cfets.door.yarn.jboss.JBossClient.java
License:Apache License
/** * Monitor the submitted application for completion. Kill application if * time expires./*from w w w.jav a 2 s . co m*/ * * @param appId * Application Id of application to be monitored * @return true if application completed successfully * @throws YarnException * @throws IOException */ private boolean monitorApplication(ApplicationId appId) throws YarnException, IOException { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { LOG.finest("Thread sleep in monitoring loop interrupted"); } ApplicationReport report = yarnClient.getApplicationReport(appId); LOG.info("Got application report from ASM for" + ", appId=" + appId.getId() + ", clientToAMToken=" + report.getClientToAMToken() + ", appDiagnostics=" + report.getDiagnostics() + ", appMasterHost=" + report.getHost() + ", appQueue=" + report.getQueue() + ", appMasterRpcPort=" + report.getRpcPort() + ", appStartTime=" + report.getStartTime() + ", yarnAppState=" + report.getYarnApplicationState().toString() + ", distributedFinalState=" + report.getFinalApplicationStatus().toString() + ", appTrackingUrl=" + report.getTrackingUrl() + ", appUser=" + report.getUser()); YarnApplicationState state = report.getYarnApplicationState(); FinalApplicationStatus jbossStatus = report.getFinalApplicationStatus(); if (YarnApplicationState.FINISHED == state) { if (FinalApplicationStatus.SUCCEEDED == jbossStatus) { LOG.info("Application has completed successfully. Breaking monitoring loop"); return true; } else { LOG.info("Application did finished unsuccessfully." + " YarnState=" + state.toString() + ", JBASFinalStatus=" + jbossStatus.toString() + ". Breaking monitoring loop"); return false; } } else if (YarnApplicationState.KILLED == state || YarnApplicationState.FAILED == state) { LOG.info("Application did not finish." + " YarnState=" + state.toString() + ", JBASFinalStatus=" + jbossStatus.toString() + ". Breaking monitoring loop"); return false; } } }
From source file:com.cloudera.branchreduce.impl.thrift.Client.java
License:Open Source License
@Override public int handle(YarnClientService clientService) throws Exception { clientService.startAndWait();//ww w .j a v a2 s .c om if (!clientService.isRunning()) { LOG.error("BranchReduce job did not start, exiting..."); return 1; } Lord.Client client = null; while (clientService.isRunning()) { ApplicationReport report = clientService.getApplicationReport(); if (report.getYarnApplicationState() == YarnApplicationState.RUNNING) { String originalTrackingUrl = report.getOriginalTrackingUrl(); if (originalTrackingUrl != null && originalTrackingUrl.contains(":")) { System.out.println("Original Tracking URL = " + originalTrackingUrl); String[] pieces = originalTrackingUrl.split(":"); TSocket socket = new TSocket(pieces[0], Integer.valueOf(pieces[1])); TProtocol protocol = new TBinaryProtocol(socket); client = new Lord.Client(protocol); socket.open(); break; } } } if (client == null) { LOG.error("Could not connect to thrift service to get status"); return 1; } Configuration conf = clientService.getParameters().getConfiguration(); Class<GlobalState> globalStatusClass = (Class<GlobalState>) conf .getClass(BranchReduceConfig.GLOBAL_STATE_CLASS, GlobalState.class); boolean finished = false; while (!clientService.isApplicationFinished()) { if (!finished) { GlobalStatusResponse resp = client.getGlobalStatus(new GlobalStatusRequest()); this.value = Writables.fromByteBuffer(resp.bufferForGlobalState(), globalStatusClass); if (resp.isFinished()) { LOG.info("Job finished running."); finished = true; } LOG.info(value); } Thread.sleep(1000); } clientService.stopAndWait(); ApplicationReport report = clientService.getFinalReport(); if (report.getFinalApplicationStatus() == FinalApplicationStatus.SUCCEEDED) { System.out.println("Job complete."); System.out.println(value); return 0; } else { System.out.println("Final app state: " + report.getFinalApplicationStatus()); System.out.println("Last global state:"); System.out.println(value); return 1; } }
From source file:com.cloudera.kitten.appmaster.service.ApplicationMasterServiceImpl.java
License:Open Source License
@Override protected void shutDown() { // Stop the containers in the case that we're finishing because of a timeout. LOG.info("Stopping trackers"); for (ContainerTracker tracker : containerTrackers) { tracker.stopServices();/*from w ww . j av a2s .c om*/ } FinishApplicationMasterRequest finishReq = Records.newRecord(FinishApplicationMasterRequest.class); finishReq.setAppAttemptId(getApplicationAttemptId()); if (state() == State.FAILED || totalFailures.incrementAndGet() > parameters.getAllowedFailures()) { //TODO: diagnostics finishReq.setFinishApplicationStatus(FinalApplicationStatus.FAILED); } else { finishReq.setFinishApplicationStatus(FinalApplicationStatus.SUCCEEDED); } LOG.info("Sending finish request with status = " + finishReq.getFinalApplicationStatus()); try { resourceManager.finishApplicationMaster(finishReq); } catch (YarnRemoteException e) { LOG.error("Error finishing application master", e); } }
From source file:com.cloudera.kitten.appmaster.service.ApplicationMasterServiceImpl1.java
License:Open Source License
@Override protected void shutDown() { // Stop the containers in the case that we're finishing because of a timeout. LOG.info("Stopping trackers"); this.hasRunningContainers = false; for (ContainerTracker tracker : trackers) { if (tracker.hasRunningContainers()) { tracker.kill();/* www . j av a2 s . c o m*/ } } FinalApplicationStatus status; String message = null; if (state() == State.FAILED || totalFailures.get() > parameters.getAllowedFailures()) { //TODO: diagnostics status = FinalApplicationStatus.FAILED; if (throwable != null) { message = throwable.getLocalizedMessage(); } } else { status = FinalApplicationStatus.SUCCEEDED; } LOG.info("Sending finish request with status = " + status); try { resourceManager.unregisterApplicationMaster(status, message, null); } catch (Exception e) { LOG.error("Error finishing application master", e); } }
From source file:com.cloudera.kitten.appmaster.service.WorkflowService.java
License:Open Source License
@Override protected void shutDown() { // Stop the containers in the case that we're finishing because of a timeout. LOG.info("Stopping trackers"); this.hasRunningContainers = false; for (ContainerTracker tracker : trackers.values()) { if (tracker.hasRunningContainers()) { tracker.kill();// w w w . j ava2 s. co m } } FinalApplicationStatus status; String message = null; if (state() == State.FAILED || totalFailures.get() > parameters.getAllowedFailures()) { //TODO: diagnostics status = FinalApplicationStatus.FAILED; if (throwable != null) { message = throwable.getLocalizedMessage(); } } else { status = FinalApplicationStatus.SUCCEEDED; } LOG.info("Sending finish request with status = " + status); try { resourceManager.unregisterApplicationMaster(status, message, null); } catch (Exception e) { LOG.error("Error finishing application master", e); } }
From source file:com.cloudera.kitten.client.service.YarnClientServiceImpl.java
License:Open Source License
@Override protected void shutDown() { if (finalReport != null) { YarnApplicationState state = finalReport.getYarnApplicationState(); FinalApplicationStatus status = finalReport.getFinalApplicationStatus(); if (YarnApplicationState.FINISHED == state) { if (FinalApplicationStatus.SUCCEEDED == status) { LOG.info("Application completed successfully."); } else { LOG.info("Application finished unsuccessfully." + " State=" + state.toString() + ", FinalStatus=" + status.toString()); }// w ww .j av a 2 s .c om } else if (YarnApplicationState.KILLED == state || YarnApplicationState.FAILED == state) { LOG.info("Application did not complete successfully." + " State=" + state.toString() + ", FinalStatus=" + status.toString()); } } else { // Otherwise, we need to kill the application, if it was created. if (applicationId != null) { LOG.info("Killing application id = " + applicationId); KillApplicationRequest request = Records.newRecord(KillApplicationRequest.class); request.setApplicationId(applicationId); try { applicationsManager.forceKillApplication(request); } catch (YarnRemoteException e) { LOG.error("Exception thrown killing application", e); } LOG.info("Application was killed."); } } }
From source file:com.cloudera.llama.am.yarn.YarnRMConnector.java
License:Apache License
@Override public void unregister() { ugi.doAs(new PrivilegedAction<Void>() { @Override//ww w. j a v a2 s . co m public Void run() { _stop(FinalApplicationStatus.SUCCEEDED, "Stopped by AM", false); return null; } }); }
From source file:com.cloudera.llama.am.yarn.YarnRMConnector.java
License:Apache License
private synchronized void _stop(FinalApplicationStatus status, String msg, boolean stopYarnClient) { if (containerHandlerExecutor != null) { containerHandlerExecutor.shutdownNow(); containerHandlerExecutor = null; }/* ww w. j a va 2s . co m*/ if (amRmClientAsync != null) { LOG.debug("Stopping AM '{}'", appId); try { amRmClientAsync.unregisterApplicationMaster(status, msg, ""); } catch (Exception ex) { LOG.warn("Error un-registering AM client, " + ex, ex); } amRmClientAsync.stop(); amRmClientAsync = null; } if (stopYarnClient) { if (yarnClient != null) { try { ApplicationReport report = _monitorAppState(yarnClient, appId, STOPPED, true); if (report.getFinalApplicationStatus() != FinalApplicationStatus.SUCCEEDED) { LOG.warn("Problem stopping application, final status '{}'", report.getFinalApplicationStatus()); } } catch (Exception ex) { LOG.warn("Error stopping application, " + ex, ex); } yarnClient.stop(); yarnClient = null; } } if (nmClient != null) { //TODO this is introducing a deadlock //nmClient.stop(); } }
From source file:com.continuuity.weave.internal.appmaster.ApplicationMasterService.java
License:Open Source License
private void doStop() throws Exception { Thread.interrupted(); // This is just to clear the interrupt flag LOG.info("Stop application master with spec: " + WeaveSpecificationAdapter.create().toJson(weaveSpec)); instanceChangeExecutor.shutdownNow(); Set<ContainerId> ids = Sets.newHashSet(runningContainers.getContainerIds()); runningContainers.stopAll();/*from w ww .jav a 2s.com*/ int count = 0; while (!ids.isEmpty() && count++ < 5) { AllocateResponse allocateResponse = amrmClient.allocate(0.0f); for (ContainerStatus status : allocateResponse.getAMResponse().getCompletedContainersStatuses()) { ids.remove(status.getContainerId()); } TimeUnit.SECONDS.sleep(1); } amrmClient.unregisterApplicationMaster(FinalApplicationStatus.SUCCEEDED, null, null); amrmClient.stop(); // App location cleanup cleanupDir(URI.create(System.getenv(EnvKeys.WEAVE_APP_DIR))); // When logger context is stopped, stop the kafka server as well. ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory(); if (loggerFactory instanceof LoggerContext) { ((LoggerContext) loggerFactory).addListener(getLoggerStopListener()); } else { kafkaServer.stopAndWait(); } }
From source file:com.continuuity.weave.internal.yarn.Hadoop20YarnAMClient.java
License:Apache License
@Override protected void shutDown() throws Exception { amrmClient.unregisterApplicationMaster(FinalApplicationStatus.SUCCEEDED, null, trackerUrl.toString()); amrmClient.stop();//from w ww . j a v a 2s . c om }