Example usage for org.apache.hadoop.yarn.api.records AMCommand AM_RESYNC

List of usage examples for org.apache.hadoop.yarn.api.records AMCommand AM_RESYNC

Introduction

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

Prototype

AMCommand AM_RESYNC

To view the source code for org.apache.hadoop.yarn.api.records AMCommand AM_RESYNC.

Click Source Link

Usage

From source file:com.yahoo.storm.yarn.MasterServer.java

License:Open Source License

private Thread initAndStartHeartbeat(final StormAMRMClient client, final BlockingQueue<Container> launcherQueue,
        final int heartBeatIntervalMs) {
    Thread thread = new Thread() {
        @Override/*from  w  w  w  . ja va  2 s .c  om*/
        public void run() {
            try {
                while (client.getServiceState() == Service.STATE.STARTED
                        && !Thread.currentThread().isInterrupted()) {

                    Thread.sleep(heartBeatIntervalMs);

                    // We always send 50% progress.
                    AllocateResponse allocResponse = client.allocate(0.5f);

                    AMCommand am_command = allocResponse.getAMCommand();
                    if (am_command != null
                            && (am_command == AMCommand.AM_SHUTDOWN || am_command == AMCommand.AM_RESYNC)) {
                        LOG.info("Got AM_SHUTDOWN or AM_RESYNC from the RM");
                        _handler.stop();
                        System.exit(0);
                    }

                    List<Container> allocatedContainers = allocResponse.getAllocatedContainers();
                    if (allocatedContainers.size() > 0) {
                        // Add newly allocated containers to the client.
                        LOG.info("HB: Received allocated containers (" + allocatedContainers.size() + ")");
                        client.addAllocatedContainers(allocatedContainers);
                        if (client.supervisorsAreToRun()) {
                            LOG.info("HB: Supervisors are to run, so queueing (" + allocatedContainers.size()
                                    + ") containers...");
                            launcherQueue.addAll(allocatedContainers);
                        } else {
                            LOG.info("HB: Supervisors are to stop, so releasing all containers...");
                            client.stopAllSupervisors();
                        }
                    }

                    List<ContainerStatus> completedContainers = allocResponse.getCompletedContainersStatuses();

                    if (completedContainers.size() > 0 && client.supervisorsAreToRun()) {
                        LOG.debug("HB: Containers completed (" + completedContainers.size()
                                + "), so releasing them.");
                        client.startAllSupervisors();
                    }

                }
            } catch (Throwable t) {
                // Something happened we could not handle.  Make sure the AM goes
                // down so that we are not surprised later on that our heart
                // stopped..
                LOG.error("Unhandled error in AM: ", t);
                _handler.stop();
                System.exit(1);
            }
        }
    };
    thread.start();
    return thread;
}

From source file:org.apache.samza.job.yarn.util.TestUtil.java

License:Apache License

public static AllocateResponse getAppMasterResponse(final boolean reboot, final List<Container> containers,
        final List<ContainerStatus> completed) {
    return new AllocateResponse() {
        @Override// w  w w. j a v  a 2s  .c o  m
        public AMCommand getAMCommand() {
            // Not sure how to throw exception without changing method signature!
            if (reboot) {
                try {
                    throw new ApplicationAttemptNotFoundException("Test - out of sync");
                } catch (ApplicationAttemptNotFoundException e) {
                    return AMCommand.AM_RESYNC;
                }
            } else {
                return null;
            }
        }

        @Override
        public void setAMCommand(AMCommand command) {
        }

        @Override
        public int getResponseId() {
            return 0;
        }

        @Override
        public void setResponseId(int responseId) {
        }

        @Override
        public List<Container> getAllocatedContainers() {
            return containers;
        }

        @Override
        public void setAllocatedContainers(List<Container> containers) {
        }

        @Override
        public Resource getAvailableResources() {
            return null;
        }

        @Override
        public void setAvailableResources(Resource limit) {
        }

        @Override
        public List<ContainerStatus> getCompletedContainersStatuses() {
            return completed;
        }

        @Override
        public void setCompletedContainersStatuses(List<ContainerStatus> containers) {
        }

        @Override
        public List<NodeReport> getUpdatedNodes() {
            return new ArrayList<NodeReport>();
        }

        @Override
        public void setUpdatedNodes(List<NodeReport> updatedNodes) {
        }

        @Override
        public int getNumClusterNodes() {
            return 1;
        }

        @Override
        public void setNumClusterNodes(int numNodes) {

        }

        @Override
        public PreemptionMessage getPreemptionMessage() {
            return null;
        }

        @Override
        public void setPreemptionMessage(PreemptionMessage request) {
        }

        @Override
        public List<NMToken> getNMTokens() {
            return new ArrayList<NMToken>();
        }

        @Override
        public void setNMTokens(List<NMToken> nmTokens) {
        }

        @Override
        public List<ContainerResourceIncrease> getIncreasedContainers() {
            return Collections.<ContainerResourceIncrease>emptyList();
        }

        @Override
        public void setIncreasedContainers(List<ContainerResourceIncrease> increasedContainers) {
        }

        @Override
        public List<ContainerResourceDecrease> getDecreasedContainers() {
            return Collections.<ContainerResourceDecrease>emptyList();
        }

        @Override
        public void setDecreasedContainers(List<ContainerResourceDecrease> decreasedContainers) {

        }

        @Override
        public Token getAMRMToken() {
            return null;
        }

        @Override
        public void setAMRMToken(Token amRMToken) {
        }
    };
}