Example usage for org.apache.hadoop.yarn.api.records ContainerStatus getExitStatus

List of usage examples for org.apache.hadoop.yarn.api.records ContainerStatus getExitStatus

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.api.records ContainerStatus getExitStatus.

Prototype

@Public
@Unstable
public abstract int getExitStatus();

Source Link

Document

Get the exit status for the container.

Note: This is valid only for completed containers i.e.

Usage

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;
    }
}