vertexProgressMap = status.getVertexProgress(); List<String> vertexNames = vertexProgressMap.keySet() .stream()
vertexProgressMap = status.getVertexProgress(); DAGStatus.State state = status.getState();
public Map<String, Float> getVertexProgress() { Map<String, Float> vertexProgress = Maps.newHashMap(); for (Map.Entry<String, Progress> entry : dagStatus.getVertexProgress().entrySet()) { Progress p = entry.getValue(); float progress = (float)p.getSucceededTaskCount() / (float)p.getTotalTaskCount(); vertexProgress.put(entry.getKey(), progress); } return vertexProgress; }
private float getProgress(String vertexName) { Progress progress = dagStatus.getVertexProgress().get(vertexName); if(progress == null) { // no such stage. return 0 like MR app currently does. return 0; } float totalTasks = (float) progress.getTotalTaskCount(); if(totalTasks != 0) { return progress.getSucceededTaskCount()/totalTasks; } return 0; }
@Override public synchronized float getMapProgress() { if(dagStatus.getVertexProgress() != null) { return getProgress(MultiStageMRConfigUtil.getInitialMapVertexName()); } if (dagStatus.getState() == DAGStatus.State.SUCCEEDED) { return 1.0f; } return 0.0f; }
@Override public synchronized float getReduceProgress() { if(dagStatus.getVertexProgress() != null) { return getProgress(MultiStageMRConfigUtil.getFinalReduceVertexName()); } if (dagStatus.getState() == DAGStatus.State.SUCCEEDED) { return 1.0f; } return 0.0f; }
@Override public boolean equals(Object obj) { // Source explicitly exclude from equals if (obj instanceof DAGStatus){ DAGStatus other = (DAGStatus)obj; return getState() == other.getState() && getDiagnostics().equals(other.getDiagnostics()) && getDAGProgress().equals(other.getDAGProgress()) && getVertexProgress().equals(other.getVertexProgress()) && ((getDAGCounters() == null && other.getDAGCounters() == null) || getDAGCounters().equals(other.getDAGCounters())); } return false; }
@Override public int hashCode() { // Source explicitly exclude from hashCode final int prime = 44017; int result = 1; result = prime + getState().hashCode(); List<String> diagnostics = getDiagnostics(); Progress dagProgress = getDAGProgress(); Map<String, Progress> vProgress = getVertexProgress(); TezCounters counters = getDAGCounters(); result = prime * result + ((diagnostics == null)? 0 : diagnostics.hashCode()); result = prime * result + ((dagProgress == null)? 0 : dagProgress.hashCode()); result = prime * result + ((vProgress == null)? 0 : vProgress.hashCode()); result = prime * result + ((counters == null)? 0 : counters.hashCode()); return result; }
vertexNames = getDAGStatus(statusGetOpts).getVertexProgress().keySet();
Map<String, Progress> progressMap = status.getVertexProgress(); DAGStatus.State state = status.getState(); heartbeater.heartbeat();