List of usage examples for org.apache.hadoop.yarn.api.records ContainerStatus getExitStatus
@Public @Unstable public abstract int getExitStatus();
Get the exit status for the container.
Note: This is valid only for completed containers i.e.
From source file:org.springframework.yarn.am.monitor.DefaultContainerMonitor.java
License:Apache License
private void handleContainerStatus(List<ContainerStatus> containerStatuses, boolean notifyIntermediates) { for (ContainerStatus status : containerStatuses) { if (log.isDebugEnabled()) { log.debug("Reporting containerStatus=" + status); }/* ww w .j a va2 s .co m*/ ContainerId containerId = status.getContainerId(); int exitStatus = status.getExitStatus(); ContainerState state = status.getState(); String cid = ConverterUtils.toString(containerId); synchronized (lock) { if (state.equals(ContainerState.COMPLETE)) { if (exitStatus > 0) { failed.add(cid); } else { completed.add(cid); } } allocated.remove(cid); running.remove(cid); } if (notifyIntermediates) { dispatchCurrentContainerMonitorState(); } } if (!notifyIntermediates) { dispatchCurrentContainerMonitorState(); } if (log.isDebugEnabled()) { log.debug("State after handleContainerStatus: " + toDebugString()); } }
From source file:org.springframework.yarn.am.monitor.DefaultContainerMonitorTests.java
License:Apache License
/** * Mock {@link ContainerStatus}// w w w.j a v a 2 s . co m * * @param containerId the {@link ContainerId} * @param containerState the {@link ContainerState} * @param exitStatus the container exit status * @return mocked {@link ContainerStatus} */ public static ContainerStatus getMockContainerStatus(ContainerId containerId, ContainerState containerState, int exitStatus) { ContainerStatus status = mock(ContainerStatus.class); when(status.getContainerId()).thenReturn(containerId); when(status.getState()).thenReturn(containerState); when(status.getExitStatus()).thenReturn(exitStatus); return status; }
From source file:org.springframework.yarn.am.StaticEventingAppmaster.java
License:Apache License
@Override protected void onContainerCompleted(ContainerStatus status) { super.onContainerCompleted(status); getMonitor().reportContainerStatus(status); int exitStatus = status.getExitStatus(); if (exitStatus == 0) { if (isComplete()) { notifyCompleted();//from w w w . j a va 2 s. co m } } else { if (!onContainerFailed(status)) { setFinalApplicationStatus(FinalApplicationStatus.FAILED); notifyCompleted(); } } }
From source file:org.springframework.yarn.boot.MockUtils.java
License:Apache License
public static ContainerStatus getMockContainerStatus(ContainerId containerId, ContainerState containerState, int exitStatus) { ContainerStatus status = mock(ContainerStatus.class); when(status.getContainerId()).thenReturn(containerId); when(status.getState()).thenReturn(containerState); when(status.getExitStatus()).thenReturn(exitStatus); return status; }
From source file:org.springframework.yarn.examples.AbstractManagedContainerGroupsAppmaster.java
License:Apache License
@Override protected void onContainerCompleted(ContainerStatus status) { log.info("XXX onContainerCompleted: " + status); super.onContainerCompleted(status); getMonitor().monitorContainer(status); int exitStatus = status.getExitStatus(); ContainerId containerId = status.getContainerId(); boolean handled = false; if (exitStatus > 0) { handled = onContainerFailed(containerId); if (!handled) { setFinalApplicationStatus(FinalApplicationStatus.FAILED); notifyCompleted();/*from w w w . j ava 2s .c o m*/ } } else { if (isComplete()) { notifyCompleted(); } } }
From source file:org.springframework.yarn.examples.CustomAppmaster.java
License:Apache License
@Override protected boolean onContainerFailed(ContainerStatus status) { ContainerId containerId = status.getContainerId(); log.debug("onContainerFailed status: " + status); log.debug("onContainerFailed containerId: " + containerId); if (status.getExitStatus() > 0) { failed.add(containerId);//from ww w .j av a 2 s . c o m getAllocator().allocateContainers(1); } return true; }
From source file:oz.hadoop.yarn.api.core.AbstractApplicationContainerLauncher.java
License:Apache License
/** * /*ww w. ja va2 s . c om*/ * @param containerStatus */ void containerCompleted(ContainerStatus containerStatus) { // containerStatus.g this.liveContainerCount.decrementAndGet(); this.containerFinishBarrier.countDown(); if (containerStatus.getExitStatus() != 0) { this.error = new IllegalStateException(containerStatus.getDiagnostics()); } if (logger.isInfoEnabled()) { logger.info("Completed Container: " + containerStatus); } // if (this.liveContainerCount.get() == 0){ // this.client.stop(true); // this.containerFinishBarrier.countDown(); // } }
From source file:yarnkit.appmaster.ApplicationMasterService.java
License:Apache License
@Override public void onContainersCompleted(@Nonnull List<ContainerStatus> containerStatuses) { LOG.info(containerStatuses.size() + " container(s) have completed"); for (ContainerStatus status : containerStatuses) { LOG.info(YarnUtils.getContainerExitStatusMessage(status)); int exitStatus = status.getExitStatus(); if (exitStatus == ContainerExitStatus.SUCCESS) { totalCompleted.incrementAndGet(); } else {//from w ww . j a v a2 s . c o m if (exitStatus != ContainerExitStatus.ABORTED) { totalCompleted.incrementAndGet(); totalFailures.incrementAndGet(); } else { // Containers killed by the framework, either due to being released by // the application or being 'lost' due to node failures etc. } } } }
From source file:yarnkit.utils.YarnUtils.java
License:Apache License
public static String getContainerExitStatusMessage(@Nonnull ContainerStatus status) { String containerId = status.getContainerId().toString(); final String msg; final int exitStatus = status.getExitStatus(); switch (exitStatus) { case ContainerExitStatus.SUCCESS: { msg = String.format("Container %s finished succesfully", containerId); break;/*from w ww . j ava2 s . c o m*/ } case ContainerExitStatus.ABORTED: { msg = String.format("Container %s aborted", containerId); break; } case ContainerExitStatus.DISKS_FAILED: { msg = String.format("Container %s ran out of disk", containerId); break; } case ContainerExitStatus.PREEMPTED: { msg = String.format("Container %s preempted", containerId); break; } case ContainerExitStatus.INVALID: default: { msg = String.format("Container %s exited with an invalid/unknown exit code: %d", containerId, exitStatus); break; } } String diagnostics = status.getDiagnostics(); if (exitStatus == ContainerExitStatus.SUCCESS || Strings.isNullOrEmpty(diagnostics)) { return msg; } else { return msg + "\nDiagnostics: " + diagnostics; } }