Example usage for org.apache.hadoop.yarn.api.records FinalApplicationStatus KILLED

List of usage examples for org.apache.hadoop.yarn.api.records FinalApplicationStatus KILLED

Introduction

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

Prototype

FinalApplicationStatus KILLED

To view the source code for org.apache.hadoop.yarn.api.records FinalApplicationStatus KILLED.

Click Source Link

Document

Application which was terminated by a user or admin.

Usage

From source file:co.cask.cdap.internal.app.runtime.distributed.AbstractTwillProgramController.java

License:Apache License

/**
 * Starts listening to TwillController state changes. For internal use only.
 * The listener cannot be binded in constructor to avoid reference leak.
 *
 * @return this instance./*w w w . j a va2s . co  m*/
 */
public ProgramController startListen() {
    twillController.onRunning(new Runnable() {
        @Override
        public void run() {
            LOG.info("Twill program running: {}, twill runId: {}", getProgramRunId(),
                    twillController.getRunId());
            started();
        }
    }, Threads.SAME_THREAD_EXECUTOR);

    twillController.onTerminated(new Runnable() {
        @Override
        public void run() {
            LOG.info("Twill program terminated: {}, twill runId: {}", getProgramRunId(),
                    twillController.getRunId());
            if (stopRequested) {
                // Service was killed
                stop();
            } else {
                try {
                    // This never blocks since the twill controller is already terminated. It will throw exception if
                    // the twill program failed.
                    twillController.awaitTerminated();
                    // Service completed by itself. Simply signal the state change of this controller.
                    // TODO (CDAP-6806): this should not be done with reflection but through a proper Twill API
                    // Figure out whether the final Yarn status is in error, if so, set state accordingly
                    if (twillController instanceof YarnTwillController) {
                        FinalApplicationStatus finalStatus = ((YarnTwillController) twillController)
                                .getTerminationStatus();
                        if (FinalApplicationStatus.FAILED.equals(finalStatus)) {
                            complete(State.ERROR);
                            return;
                        } else if (FinalApplicationStatus.KILLED.equals(finalStatus)) {
                            complete(State.KILLED);
                            return;
                        }
                    }
                    // normal termination
                    complete();
                } catch (Exception e) {
                    error(e);
                }
            }
        }
    }, Threads.SAME_THREAD_EXECUTOR);
    return this;
}

From source file:com.hazelcast.yarn.ApplicationMaster.java

License:Open Source License

private void runApplicationMaster() throws IOException, YarnException, InterruptedException {
    this.rmClient.registerApplicationMaster("", 0, "");

    LOG.log(Level.INFO, "Application master running...");
    Priority priority = Records.newRecord(Priority.class);
    priority.setPriority(0);/*w w  w .  ja v a  2s  .c om*/

    try {
        while (!this.nmClient.isInState(Service.STATE.STOPPED)) {
            int running = this.containers.size();

            if (running < this.properties.clusterSize() && checkResources()) {
                // Resource requirements for worker containers.
                Resource capability = Records.newRecord(Resource.class);
                capability.setMemory(this.properties.memoryPerNode());
                capability.setVirtualCores(this.properties.cpuPerNode());

                for (int i = 0; i < this.properties.clusterSize() - running; i++) {
                    // Make container requests to ResourceManager
                    AMRMClient.ContainerRequest containerAsk = new AMRMClient.ContainerRequest(capability, null,
                            null, priority);

                    this.rmClient.addContainerRequest(containerAsk);
                    LOG.log(Level.INFO, "Making request. Memory: {0}, cpu {1}.",
                            new Object[] { this.properties.memoryPerNode(), this.properties.cpuPerNode() });
                }
            }

            TimeUnit.MILLISECONDS.sleep(TIMEOUT);
        }
    } catch (InterruptedException e) {
        this.rmClient.unregisterApplicationMaster(FinalApplicationStatus.KILLED, "", "");
        LOG.log(Level.WARNING, "Application master has been interrupted.");
    } catch (Exception e) {
        this.rmClient.unregisterApplicationMaster(FinalApplicationStatus.FAILED, "", "");
        LOG.log(Level.SEVERE, "Application master caused error.", e);
    }
}

From source file:io.amient.yarn1.YarnMaster.java

License:Open Source License

public static void run(Properties config, String[] args) throws Exception {
    try {//from  w w  w .j a va 2  s . c  o  m

        log.info("Yarn1 App Configuration:");
        for (Object param : config.keySet()) {
            log.info(param.toString() + " = " + config.get(param).toString());
        }
        Class<? extends YarnMaster> masterClass = Class.forName(config.getProperty("yarn1.master.class"))
                .asSubclass(YarnMaster.class);
        log.info("Starting Master Instance: " + masterClass.getName());
        Constructor<? extends YarnMaster> constructor = masterClass.getConstructor(Properties.class);
        YarnMaster master = null;
        try {
            master = constructor.newInstance(config);
            master.initialize();
            /**
             * The application master instance now has an opportunity to
             * request containers it needs in the onStartUp(args), e.g.to request 16 containers,
             * with priority 1, 4 cores and 1024Mb of memory:
             * for(int i=0; i< 16; i++) {
             *  requestContainer(1, MyAppWorker.class,1024, 4);
             * }
             */
            master.onStartUp(args);
            while (master.numTasks.get() > master.numCompletedTasks.get()) {
                synchronized (master.killed) {
                    master.killed.wait(10000);
                }
                if (master.killed.get()) {
                    try {
                        master.rmClient.unregisterApplicationMaster(FinalApplicationStatus.KILLED, "", "");
                    } finally {
                        System.exit(103);
                    }
                }
            }
            master.conclude();
        } catch (Throwable e) {
            e.printStackTrace();
            System.exit(102);
        } finally {
            if (master != null)
                master.onCompletion();
        }
    } catch (Throwable e) {
        e.printStackTrace();
        System.exit(101);
    }
}

From source file:org.apache.flink.yarn.YarnFlinkResourceManager.java

License:Apache License

/**
 * Converts a Flink application status enum to a YARN application status enum.
 * @param status The Flink application status.
 * @return The corresponding YARN application status.
 *//*from  www  .j ava 2s . co m*/
private FinalApplicationStatus getYarnStatus(ApplicationStatus status) {
    if (status == null) {
        return FinalApplicationStatus.UNDEFINED;
    } else {
        switch (status) {
        case SUCCEEDED:
            return FinalApplicationStatus.SUCCEEDED;
        case FAILED:
            return FinalApplicationStatus.FAILED;
        case CANCELED:
            return FinalApplicationStatus.KILLED;
        default:
            return FinalApplicationStatus.UNDEFINED;
        }
    }
}

From source file:org.apache.hama.bsp.BSPApplicationMaster.java

License:Apache License

private void cleanup() throws YarnException, IOException {
    syncServer.stop();/*  w w w .  j  a v a2  s .co m*/

    if (threadPool != null && !threadPool.isShutdown()) {
        threadPool.shutdownNow();
    }

    clientServer.stop();
    taskServer.stop();
    FinishApplicationMasterRequest finishReq = Records.newRecord(FinishApplicationMasterRequest.class);
    switch (job.getState()) {
    case SUCCESS:
        finishReq.setFinalApplicationStatus(FinalApplicationStatus.SUCCEEDED);
        break;
    case KILLED:
        finishReq.setFinalApplicationStatus(FinalApplicationStatus.KILLED);
        break;
    case FAILED:
        finishReq.setFinalApplicationStatus(FinalApplicationStatus.FAILED);
        break;
    default:
        finishReq.setFinalApplicationStatus(FinalApplicationStatus.FAILED);
    }
    this.amrmRPC.finishApplicationMaster(finishReq);
}

From source file:org.apache.ignite.yarn.ApplicationMaster.java

License:Apache License

/**
 * Runs application master./*from   w  w  w.  j  a v a 2  s.c  o  m*/
 *
 * @throws Exception If failed.
 */
public void run() throws Exception {
    // Register with ResourceManager
    rmClient.registerApplicationMaster("", 0, "");

    log.log(Level.INFO, "Application master registered.");

    // Priority for worker containers - priorities are intra-application
    Priority priority = Records.newRecord(Priority.class);
    priority.setPriority(0);

    try {
        // Check ignite cluster.
        while (!nmClient.isInState(Service.STATE.STOPPED)) {
            int runningCnt = containers.size();

            if (runningCnt < props.instances() && checkAvailableResource()) {
                // Resource requirements for worker containers.
                Resource capability = Records.newRecord(Resource.class);

                capability.setMemory((int) props.totalMemoryPerNode());
                capability.setVirtualCores((int) props.cpusPerNode());

                for (int i = 0; i < props.instances() - runningCnt; ++i) {
                    // Make container requests to ResourceManager
                    AMRMClient.ContainerRequest containerAsk = new AMRMClient.ContainerRequest(capability, null,
                            null, priority);

                    rmClient.addContainerRequest(containerAsk);

                    log.log(Level.INFO, "Making request. Memory: {0}, cpu {1}.",
                            new Object[] { props.totalMemoryPerNode(), props.cpusPerNode() });
                }
            }

            TimeUnit.MILLISECONDS.sleep(schedulerTimeout);
        }
    } catch (InterruptedException ignored) {
        // Un-register with ResourceManager
        rmClient.unregisterApplicationMaster(FinalApplicationStatus.KILLED, "", "");

        log.log(Level.WARNING, "Application master killed.");
    } catch (Exception e) {
        // Un-register with ResourceManager
        rmClient.unregisterApplicationMaster(FinalApplicationStatus.FAILED, "", "");

        log.log(Level.SEVERE, "Application master failed.", e);
    }
}

From source file:org.apache.oozie.action.hadoop.TestLauncherMain.java

License:Apache License

@Test
public void testKillChildYarnJobs() throws Exception {
    YarnClient yc = Mockito.mock(YarnClient.class);
    ApplicationReport ar = Mockito.mock(ApplicationReport.class);
    Mockito.when(yc.getApplicationReport(Mockito.any(ApplicationId.class))).thenReturn(ar);

    Mockito.when(ar.getFinalApplicationStatus()).thenReturn(FinalApplicationStatus.UNDEFINED)
            .thenReturn(FinalApplicationStatus.FAILED).thenReturn(FinalApplicationStatus.KILLED);

    ApplicationId appz[] = { ApplicationId.newInstance(System.currentTimeMillis(), 1),
            ApplicationId.newInstance(System.currentTimeMillis(), 2),
            ApplicationId.newInstance(System.currentTimeMillis(), 3) };

    Collection<ApplicationId> result = LauncherMain.checkAndKillChildYarnJobs(yc, null, Arrays.asList(appz));

    assertEquals(1, result.size());/*from   ww w  .j  a  v a 2 s.  c  o  m*/
    assertEquals(appz[0].getId(), result.iterator().next().getId());
}

From source file:org.apache.tajo.master.rm.RMContainerAllocator.java

License:Apache License

public void stop() {
    stopped.set(true);//from  w w w  . j a  v  a  2s.  c o m
    super.stop();
    FinalApplicationStatus finishState = FinalApplicationStatus.UNDEFINED;
    QueryState state = context.getQuery().getState();
    if (state == QueryState.QUERY_SUCCEEDED) {
        finishState = FinalApplicationStatus.SUCCEEDED;
    } else if (state == QueryState.QUERY_KILLED || (state == QueryState.QUERY_RUNNING)) {
        finishState = FinalApplicationStatus.KILLED;
    } else if (state == QueryState.QUERY_FAILED || state == QueryState.QUERY_ERROR) {
        finishState = FinalApplicationStatus.FAILED;
    }

    try {
        unregisterApplicationMaster(finishState, "", "http://localhost:1234");
    } catch (YarnRemoteException e) {
        LOG.error(e);
    }
}

From source file:org.apache.tez.client.LocalClient.java

License:Apache License

protected FinalApplicationStatus convertDAGAppMasterStateToFinalYARNState(DAGAppMasterState dagAppMasterState) {
    switch (dagAppMasterState) {
    case NEW://from   ww w.j a v  a 2s  .co  m
    case INITED:
    case RECOVERING:
    case IDLE:
    case RUNNING:
        return FinalApplicationStatus.UNDEFINED;
    case SUCCEEDED:
        return FinalApplicationStatus.SUCCEEDED;
    case FAILED:
        return FinalApplicationStatus.FAILED;
    case KILLED:
        return FinalApplicationStatus.KILLED;
    case ERROR:
        return FinalApplicationStatus.FAILED;
    default:
        return FinalApplicationStatus.UNDEFINED;
    }
}

From source file:org.apache.tez.dag.app.rm.TaskSchedulerEventHandler.java

License:Apache License

@Override
public AppFinalStatus getFinalAppStatus() {
    FinalApplicationStatus finishState = FinalApplicationStatus.UNDEFINED;
    StringBuffer sb = new StringBuffer();
    if (dagAppMaster == null) {
        finishState = FinalApplicationStatus.UNDEFINED;
        sb.append("App not yet initialized");
    } else {//from  w ww  .j  a  va  2s . c o m
        DAGAppMasterState appMasterState = dagAppMaster.getState();
        if (appMasterState == DAGAppMasterState.SUCCEEDED) {
            finishState = FinalApplicationStatus.SUCCEEDED;
        } else if (appMasterState == DAGAppMasterState.KILLED
                || (appMasterState == DAGAppMasterState.RUNNING && isSignalled)) {
            finishState = FinalApplicationStatus.KILLED;
        } else if (appMasterState == DAGAppMasterState.FAILED || appMasterState == DAGAppMasterState.ERROR) {
            finishState = FinalApplicationStatus.FAILED;
        } else {
            finishState = FinalApplicationStatus.UNDEFINED;
        }
        List<String> diagnostics = dagAppMaster.getDiagnostics();
        if (diagnostics != null) {
            for (String s : diagnostics) {
                sb.append(s).append("\n");
            }
        }
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("Setting job diagnostics to " + sb.toString());
    }

    // if history url is set use the same, if historyUrl is set to "" then rm ui disables the
    // history url
    return new AppFinalStatus(finishState, sb.toString(), historyUrl);
}