Search in sources :

Example 1 with DAGStatusBuilder

use of org.apache.tez.dag.api.client.DAGStatusBuilder in project tez by apache.

the class DAGImpl method getDAGStatus.

// monitoring apis
@Override
public DAGStatusBuilder getDAGStatus(Set<StatusGetOpts> statusOptions) {
    DAGStatusBuilder status = new DAGStatusBuilder();
    int totalTaskCount = 0;
    int totalSucceededTaskCount = 0;
    int totalRunningTaskCount = 0;
    int totalFailedTaskCount = 0;
    int totalKilledTaskCount = 0;
    int totalFailedTaskAttemptCount = 0;
    int totalKilledTaskAttemptCount = 0;
    int totalRejectedTaskAttemptCount = 0;
    readLock.lock();
    try {
        for (Map.Entry<String, Vertex> entry : vertexMap.entrySet()) {
            ProgressBuilder progress = entry.getValue().getVertexProgress();
            status.addVertexProgress(entry.getKey(), progress);
            totalTaskCount += progress.getTotalTaskCount();
            totalSucceededTaskCount += progress.getSucceededTaskCount();
            totalRunningTaskCount += progress.getRunningTaskCount();
            totalFailedTaskCount += progress.getFailedTaskCount();
            totalKilledTaskCount += progress.getKilledTaskCount();
            totalFailedTaskAttemptCount += progress.getFailedTaskAttemptCount();
            totalKilledTaskAttemptCount += progress.getKilledTaskAttemptCount();
            totalRejectedTaskAttemptCount += progress.getRejectedTaskAttemptCount();
        }
        ProgressBuilder dagProgress = new ProgressBuilder();
        dagProgress.setTotalTaskCount(totalTaskCount);
        dagProgress.setSucceededTaskCount(totalSucceededTaskCount);
        dagProgress.setRunningTaskCount(totalRunningTaskCount);
        dagProgress.setFailedTaskCount(totalFailedTaskCount);
        dagProgress.setKilledTaskCount(totalKilledTaskCount);
        dagProgress.setFailedTaskAttemptCount(totalFailedTaskAttemptCount);
        dagProgress.setKilledTaskAttemptCount(totalKilledTaskAttemptCount);
        dagProgress.setRejectedTaskAttemptCount(totalRejectedTaskAttemptCount);
        status.setState(getState());
        status.setDiagnostics(diagnostics);
        status.setDAGProgress(dagProgress);
        if (statusOptions.contains(StatusGetOpts.GET_COUNTERS)) {
            status.setDAGCounters(getAllCounters());
        }
        return status;
    } finally {
        readLock.unlock();
    }
}
Also used : VertexEventRecoverVertex(org.apache.tez.dag.app.dag.event.VertexEventRecoverVertex) Vertex(org.apache.tez.dag.app.dag.Vertex) DAGStatusBuilder(org.apache.tez.dag.api.client.DAGStatusBuilder) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) VertexLocationHint(org.apache.tez.dag.api.VertexLocationHint) ProgressBuilder(org.apache.tez.dag.api.client.ProgressBuilder)

Example 2 with DAGStatusBuilder

use of org.apache.tez.dag.api.client.DAGStatusBuilder in project tez by apache.

the class TestDAGImpl method testGetDAGStatusWithWait.

@SuppressWarnings("unchecked")
@Test(timeout = 10000)
public void testGetDAGStatusWithWait() throws TezException {
    initDAG(dag);
    startDAG(dag);
    dispatcher.await();
    // All vertices except one succeed
    for (int i = 0; i < dag.getVertices().size() - 1; ++i) {
        dispatcher.getEventHandler().handle(new DAGEventVertexCompleted(TezVertexID.getInstance(dagId, i), VertexState.SUCCEEDED));
    }
    dispatcher.await();
    Assert.assertEquals(DAGState.RUNNING, dag.getState());
    Assert.assertEquals(5, dag.getSuccessfulVertices());
    long dagStatusStartTime = System.currentTimeMillis();
    DAGStatusBuilder dagStatus = dag.getDAGStatus(EnumSet.noneOf(StatusGetOpts.class), 2000l);
    long dagStatusEndTime = System.currentTimeMillis();
    long diff = dagStatusEndTime - dagStatusStartTime;
    Assert.assertTrue(diff > 1500 && diff < 2500);
    Assert.assertEquals(DAGStatusBuilder.State.RUNNING, dagStatus.getState());
}
Also used : DAGStatusBuilder(org.apache.tez.dag.api.client.DAGStatusBuilder) DAGEventVertexCompleted(org.apache.tez.dag.app.dag.event.DAGEventVertexCompleted) StatusGetOpts(org.apache.tez.dag.api.client.StatusGetOpts) PlanTaskLocationHint(org.apache.tez.dag.api.records.DAGProtos.PlanTaskLocationHint) Test(org.junit.Test) StateChangeNotifierForTest(org.apache.tez.dag.app.dag.TestStateChangeNotifier.StateChangeNotifierForTest)

Example 3 with DAGStatusBuilder

use of org.apache.tez.dag.api.client.DAGStatusBuilder in project tez by apache.

the class DAGClientAMProtocolBlockingPBServerImpl method getDAGStatus.

@Override
public GetDAGStatusResponseProto getDAGStatus(RpcController controller, GetDAGStatusRequestProto request) throws ServiceException {
    UserGroupInformation user = getRPCUser();
    try {
        String dagId = request.getDagId();
        long timeout = request.getTimeout();
        if (!real.getACLManager(dagId).checkDAGViewAccess(user)) {
            throw new AccessControlException("User " + user + " cannot perform DAG view operation");
        }
        real.updateLastHeartbeatTime();
        DAGStatus status;
        status = real.getDAGStatus(dagId, DagTypeConverters.convertStatusGetOptsFromProto(request.getStatusOptionsList()), timeout);
        assert status instanceof DAGStatusBuilder;
        DAGStatusBuilder builder = (DAGStatusBuilder) status;
        return GetDAGStatusResponseProto.newBuilder().setDagStatus(builder.getProto()).build();
    } catch (TezException e) {
        throw wrapException(e);
    }
}
Also used : TezException(org.apache.tez.dag.api.TezException) DAGStatusBuilder(org.apache.tez.dag.api.client.DAGStatusBuilder) AccessControlException(java.security.AccessControlException) DAGStatus(org.apache.tez.dag.api.client.DAGStatus) UserGroupInformation(org.apache.hadoop.security.UserGroupInformation)

Aggregations

DAGStatusBuilder (org.apache.tez.dag.api.client.DAGStatusBuilder)3 AccessControlException (java.security.AccessControlException)1 HashMap (java.util.HashMap)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1 UserGroupInformation (org.apache.hadoop.security.UserGroupInformation)1 TezException (org.apache.tez.dag.api.TezException)1 VertexLocationHint (org.apache.tez.dag.api.VertexLocationHint)1 DAGStatus (org.apache.tez.dag.api.client.DAGStatus)1 ProgressBuilder (org.apache.tez.dag.api.client.ProgressBuilder)1 StatusGetOpts (org.apache.tez.dag.api.client.StatusGetOpts)1 PlanTaskLocationHint (org.apache.tez.dag.api.records.DAGProtos.PlanTaskLocationHint)1 StateChangeNotifierForTest (org.apache.tez.dag.app.dag.TestStateChangeNotifier.StateChangeNotifierForTest)1 Vertex (org.apache.tez.dag.app.dag.Vertex)1 DAGEventVertexCompleted (org.apache.tez.dag.app.dag.event.DAGEventVertexCompleted)1 VertexEventRecoverVertex (org.apache.tez.dag.app.dag.event.VertexEventRecoverVertex)1 Test (org.junit.Test)1