Example usage for org.apache.hadoop.yarn.api.records NodeReport getNodeState

List of usage examples for org.apache.hadoop.yarn.api.records NodeReport getNodeState

Introduction

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

Prototype

@Public
@Stable
public abstract NodeState getNodeState();

Source Link

Document

Get the NodeState of the node.

Usage

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

License:Apache License

public AMNodeEventStateChanged(NodeReport nodeReport) {
    super(nodeReport.getNodeId(), (nodeReport.getNodeState().isUnusable() ? AMNodeEventType.N_TURNED_UNHEALTHY
            : AMNodeEventType.N_TURNED_HEALTHY));
    this.nodeReport = nodeReport;
}

From source file:org.huahinframework.manager.rest.service.ApplicationService.java

License:Apache License

@Path("/cluster")
@GET/*from   ww w .jav  a2s.co  m*/
@Produces(MediaType.APPLICATION_JSON)
public JSONObject getCluster() {
    JSONObject jsonObject = new JSONObject();

    try {
        GetClusterMetricsRequest metricsRequest = recordFactory
                .newRecordInstance(GetClusterMetricsRequest.class);
        GetClusterMetricsResponse metricsResponse = applicationsManager.getClusterMetrics(metricsRequest);

        jsonObject.put(Response.NUM_NODE_MANAGERS, metricsResponse.getClusterMetrics().getNumNodeManagers());

        GetClusterNodesRequest nodeRequest = recordFactory.newRecordInstance(GetClusterNodesRequest.class);
        GetClusterNodesResponse nodeResponse = applicationsManager.getClusterNodes(nodeRequest);

        List<JSONObject> reports = new ArrayList<JSONObject>();
        for (NodeReport report : nodeResponse.getNodeReports()) {
            JSONObject nr = new JSONObject();
            nr.put(Response.HTTP_ADDRESS, report.getHttpAddress());
            nr.put(Response.NUM_CONTAINERS, report.getNumContainers());
            nr.put(Response.RACK_NAME, report.getRackName());
            nr.put(Response.CAPABILITY, report.getCapability().getMemory());
            nr.put(Response.HEALTH_REPORT, report.getNodeHealthStatus().getHealthReport());
            nr.put(Response.IS_NODE_HEALTHY, report.getNodeHealthStatus().getIsNodeHealthy());
            nr.put(Response.LAST_HEALTH_REPORT_TIME,
                    new Date(report.getNodeHealthStatus().getLastHealthReportTime()));
            nr.put(Response.NODE_ID, report.getNodeId());
            nr.put(Response.NODE_STATE, report.getNodeState());
            nr.put(Response.NODE_STATE, report.getNodeState());
            nr.put(Response.USED, report.getUsed());
            reports.add(nr);
        }

        jsonObject.put(Response.NODES, reports);
    } catch (Exception e) {
        e.printStackTrace();
        log.error(e);
        Map<String, String> status = new HashMap<String, String>();
        status.put(Response.STATUS, e.getMessage());
        jsonObject = new JSONObject(status);
    }

    return jsonObject;
}

From source file:uk.ac.gla.terrier.probos.controller.ControllerServer.java

License:Open Source License

@Override
public PBSNodeStatus[] getNodesStatus() throws Exception {

    //first use the container reports of all running jobs to get a picture of the hosts in use
    //for each job
    TIntObjectHashMap<List<ContainerId>> job2con = getAllActiveContainers();
    final Map<String, TIntArrayList> node2job = new HashMap<String, TIntArrayList>();
    job2con.forEachEntry(new TIntObjectProcedure<List<ContainerId>>() {
        @Override//  www.  j  a va  2 s  .c o m
        public boolean execute(int jobId, List<ContainerId> containerList) {
            for (ContainerId cid : containerList) {
                try {
                    ContainerReport cr = yClient.getContainerReport(cid);
                    String hostname = cr.getAssignedNode().getHost();

                    TIntArrayList jobs = node2job.get(hostname);
                    if (jobs == null)
                        node2job.put(hostname, jobs = new TIntArrayList());
                    jobs.add(jobId);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
            return true;
        }
    });

    List<NodeReport> nodeReports = yClient.getNodeReports();

    PBSNodeStatus[] rtr = new PBSNodeStatus[nodeReports.size()];
    for (int i = 0; i < rtr.length; i++) {
        final NodeReport node = nodeReports.get(i);
        String hostname = node.getNodeId().getHost();
        String yarnState = node.getNodeState().toString();

        String rack = node.getRackName();
        String tracker = node.getHttpAddress();
        int numContainers = node.getNumContainers();
        int numProcs = node.getCapability().getVirtualCores();
        TIntArrayList jobList = node2job.get(hostname);
        int[] jobs;
        if (jobList == null)
            jobs = new int[0];
        else
            jobs = jobList.toArray();

        String state = "free";
        if (numContainers >= numProcs)
            state = "busy";

        StringBuilder status = new StringBuilder();
        status.append("capacity=" + node.getCapability().toString());
        status.append(",used=" + node.getUsed().toString());

        rtr[i] = new PBSNodeStatus(hostname, state, status.toString(), jobs, tracker, node.getHealthReport(),
                rack, yarnState, numProcs, node.getNodeLabels());
    }
    return rtr;
}