List of usage examples for org.apache.hadoop.yarn.api.records AMCommand AM_RESYNC
AMCommand AM_RESYNC
To view the source code for org.apache.hadoop.yarn.api.records AMCommand AM_RESYNC.
Click Source Link
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) { } }; }