Java Code Examples for org.apache.hadoop.yarn.api.records.NodeReport#getNodeState()

The following examples show how to use org.apache.hadoop.yarn.api.records.NodeReport#getNodeState() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: JobImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public void transition(JobImpl job, JobEvent event) {
  JobUpdatedNodesEvent updateEvent = (JobUpdatedNodesEvent) event;
  for(NodeReport nr: updateEvent.getUpdatedNodes()) {
    NodeState nodeState = nr.getNodeState();
    if(nodeState.isUnusable()) {
      // act on the updates
      job.actOnUnusableNode(nr.getNodeId(), nodeState);
    }
  }
}
 
Example 2
Source File: RMContainerAllocator.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
private void handleUpdatedNodes(AllocateResponse response) {
  // send event to the job about on updated nodes
  List<NodeReport> updatedNodes = response.getUpdatedNodes();
  if (!updatedNodes.isEmpty()) {

    // send event to the job to act upon completed tasks
    eventHandler.handle(new JobUpdatedNodesEvent(getJob().getID(),
        updatedNodes));

    // act upon running tasks
    HashSet<NodeId> unusableNodes = new HashSet<NodeId>();
    for (NodeReport nr : updatedNodes) {
      NodeState nodeState = nr.getNodeState();
      if (nodeState.isUnusable()) {
        unusableNodes.add(nr.getNodeId());
      }
    }
    for (int i = 0; i < 2; ++i) {
      HashMap<TaskAttemptId, Container> taskSet = i == 0 ? assignedRequests.maps
          : assignedRequests.reduces;
      // kill running containers
      for (Map.Entry<TaskAttemptId, Container> entry : taskSet.entrySet()) {
        TaskAttemptId tid = entry.getKey();
        NodeId taskAttemptNodeId = entry.getValue().getNodeId();
        if (unusableNodes.contains(taskAttemptNodeId)) {
          LOG.info("Killing taskAttempt:" + tid
              + " because it is running on unusable node:"
              + taskAttemptNodeId);
          eventHandler.handle(new TaskAttemptKillEvent(tid,
              "TaskAttempt killed because it ran on unusable node"
                  + taskAttemptNodeId));
        }
      }
    }
  }
}
 
Example 3
Source File: JobImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public void transition(JobImpl job, JobEvent event) {
  JobUpdatedNodesEvent updateEvent = (JobUpdatedNodesEvent) event;
  for(NodeReport nr: updateEvent.getUpdatedNodes()) {
    NodeState nodeState = nr.getNodeState();
    if(nodeState.isUnusable()) {
      // act on the updates
      job.actOnUnusableNode(nr.getNodeId(), nodeState);
    }
  }
}
 
Example 4
Source File: RMContainerAllocator.java    From big-c with Apache License 2.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
private void handleUpdatedNodes(AllocateResponse response) {
  // send event to the job about on updated nodes
  List<NodeReport> updatedNodes = response.getUpdatedNodes();
  if (!updatedNodes.isEmpty()) {

    // send event to the job to act upon completed tasks
    eventHandler.handle(new JobUpdatedNodesEvent(getJob().getID(),
        updatedNodes));

    // act upon running tasks
    HashSet<NodeId> unusableNodes = new HashSet<NodeId>();
    for (NodeReport nr : updatedNodes) {
      NodeState nodeState = nr.getNodeState();
      if (nodeState.isUnusable()) {
        unusableNodes.add(nr.getNodeId());
      }
    }
    for (int i = 0; i < 2; ++i) {
      HashMap<TaskAttemptId, Container> taskSet = i == 0 ? assignedRequests.maps
          : assignedRequests.reduces;
      // kill running containers
      for (Map.Entry<TaskAttemptId, Container> entry : taskSet.entrySet()) {
        TaskAttemptId tid = entry.getKey();
        NodeId taskAttemptNodeId = entry.getValue().getNodeId();
        if (unusableNodes.contains(taskAttemptNodeId)) {
          LOG.info("Killing taskAttempt:" + tid
              + " because it is running on unusable node:"
              + taskAttemptNodeId);
          eventHandler.handle(new TaskAttemptKillEvent(tid,
              "TaskAttempt killed because it ran on unusable node"
                  + taskAttemptNodeId));
        }
      }
    }
  }
}
 
Example 5
Source File: ClusterAnalysisMetrics.java    From jumbune with GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * Gets the num containers running.
 * @param rmCommunicator 
 *
 * @return the num containers running
 */
public int getNumContainersRunning(RMCommunicator rmCommunicator) {
	int containers = 0;
	try { 			
		for (NodeReport report : rmCommunicator.getNodeReports()) {
			if(NodeState.RUNNING == report.getNodeState()) {
				containers += report.getNumContainers();
			}
		}
	} catch (YarnException | IOException e) {
           LOGGER.error("unable to get running containers", e.getMessage()); 
	}
	return containers;
}