protected int getTotalTaskCount(Map<SparkStage, SparkStageProgress> progressMap) { int totalTasks = 0; for (SparkStageProgress progress : progressMap.values()) { totalTasks += progress.getTotalTaskCount(); } return totalTasks; }
protected int getStageMaxTaskCount(Map<SparkStage, SparkStageProgress> progressMap) { int stageMaxTasks = 0; for (SparkStageProgress progress : progressMap.values()) { int tasks = progress.getTotalTaskCount(); if (tasks > stageMaxTasks) { stageMaxTasks = tasks; } } return stageMaxTasks; }
private int getCompletedStages() { int completed = 0; SortedSet<SparkStage> keys = new TreeSet<SparkStage>(progressMap.keySet()); for (SparkStage stage : keys) { SparkStageProgress progress = progressMap.get(stage); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); if (total > 0 && complete == total) { completed++; } } return completed; }
@Override public double progressedPercentage() { SortedSet<SparkStage> keys = new TreeSet<SparkStage>(progressMap.keySet()); int sumTotal = 0; int sumComplete = 0; for (SparkStage stage : keys) { SparkStageProgress progress = progressMap.get(stage); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); sumTotal += total; sumComplete += complete; } double progress = (sumTotal == 0) ? 1.0f : (float) sumComplete / (float) sumTotal; return progress; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("TotalTasks: "); sb.append(getTotalTaskCount()); sb.append(" Succeeded: "); sb.append(getSucceededTaskCount()); sb.append(" Running: "); sb.append(getRunningTaskCount()); sb.append(" Failed: "); sb.append(getFailedTaskCount()); return sb.toString(); } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("TotalTasks: "); sb.append(getTotalTaskCount()); sb.append(" Succeeded: "); sb.append(getSucceededTaskCount()); sb.append(" Running: "); sb.append(getRunningTaskCount()); sb.append(" Failed: "); sb.append(getFailedTaskCount()); return sb.toString(); } }
private void getSparkJobInfo(SparkJobStatus sparkJobStatus) { try { stageIds = new ArrayList<Integer>(); int[] ids = sparkJobStatus.getStageIds(); if (ids != null) { for (int stageId : ids) { stageIds.add(stageId); } } Map<SparkStage, SparkStageProgress> progressMap = sparkJobStatus.getSparkStageProgress(); int sumTotal = 0; int sumComplete = 0; int sumFailed = 0; for (SparkStage s : progressMap.keySet()) { SparkStageProgress progress = progressMap.get(s); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int failed = progress.getFailedTaskCount(); sumTotal += total; sumComplete += complete; sumFailed += failed; } succeededTaskCount = sumComplete; totalTaskCount = sumTotal; failedTaskCount = sumFailed; } catch (Exception e) { LOG.error("Failed to get Spark job information", e); } }
@Override public boolean equals(Object obj) { if (obj instanceof SparkStageProgress) { SparkStageProgress other = (SparkStageProgress) obj; return getTotalTaskCount() == other.getTotalTaskCount() && getSucceededTaskCount() == other.getSucceededTaskCount() && getRunningTaskCount() == other.getRunningTaskCount() && getFailedTaskCount() == other.getFailedTaskCount(); } return false; }
@Override public List<List<String>> rows() { List<List<String>> progressRows = new ArrayList<>(); SortedSet<SparkStage> keys = new TreeSet<SparkStage>(progressMap.keySet()); for (SparkStage stage : keys) { SparkStageProgress progress = progressMap.get(stage); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int running = progress.getRunningTaskCount(); final int failed = progress.getFailedTaskCount(); SparkJobMonitor.StageState state = total > 0 ? SparkJobMonitor.StageState.PENDING : SparkJobMonitor.StageState.FINISHED; if (complete > 0 || running > 0 || failed > 0) { if (complete < total) { state = SparkJobMonitor.StageState.RUNNING; } else { state = SparkJobMonitor.StageState.FINISHED; } } String attempt = String.valueOf(stage.getAttemptId()); String stageName = "Stage-" +String.valueOf(stage.getStageId()); String nameWithProgress = getNameWithProgress(stageName, complete, total); final int pending = total - complete - running; progressRows.add(Arrays .asList(nameWithProgress, attempt, state.toString(), String.valueOf(total), String.valueOf(complete), String.valueOf(running), String.valueOf(pending), String.valueOf(failed), "")); } return progressRows; }
@Override public boolean equals(Object obj) { if (obj instanceof SparkStageProgress) { SparkStageProgress other = (SparkStageProgress) obj; return getTotalTaskCount() == other.getTotalTaskCount() && getSucceededTaskCount() == other.getSucceededTaskCount() && getRunningTaskCount() == other.getRunningTaskCount() && getFailedTaskCount() == other.getFailedTaskCount(); } return false; }
SparkStageProgress progress = progressMap.get(stage); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int running = progress.getRunningTaskCount(); final int failed = progress.getFailedTaskCount();
SparkStageProgress progress = progressMap.get(s); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int running = progress.getRunningTaskCount(); final int failed = progress.getFailedTaskCount();
SparkStageProgress progress = progressMap.get(s); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int failed = progress.getFailedTaskCount(); sumTotal += total;
SparkStageProgress progress = progressMap.get(s); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int running = progress.getRunningTaskCount(); final int failed = progress.getFailedTaskCount();
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("TotalTasks: "); sb.append(getTotalTaskCount()); sb.append(" Succeeded: "); sb.append(getSucceededTaskCount()); sb.append(" Running: "); sb.append(getRunningTaskCount()); sb.append(" Failed: "); sb.append(getFailedTaskCount()); return sb.toString(); } }
@Override public boolean equals(Object obj) { if (obj instanceof SparkStageProgress) { SparkStageProgress other = (SparkStageProgress) obj; return getTotalTaskCount() == other.getTotalTaskCount() && getSucceededTaskCount() == other.getSucceededTaskCount() && getRunningTaskCount() == other.getRunningTaskCount() && getFailedTaskCount() == other.getFailedTaskCount(); } return false; }
SparkStageProgress progress = progressMap.get(s); final int complete = progress.getSucceededTaskCount(); final int total = progress.getTotalTaskCount(); final int running = progress.getRunningTaskCount(); final int failed = progress.getFailedTaskCount();