public void write(DataOutput out) throws IOException { taskid.write(out); out.writeFloat(progress); Text.writeString(out, state); out.writeLong(startTime); out.writeLong(finishTime); WritableUtils.writeStringArray(out, diagnostics); counters.write(out); WritableUtils.writeEnum(out, currentStatus); if (currentStatus == TIPStatus.RUNNING) { WritableUtils.writeVInt(out, runningAttempts.size()); TaskAttemptID t[] = new TaskAttemptID[0]; t = runningAttempts.toArray(t); for (int i = 0; i < t.length; i++) { t[i].write(out); } } else if (currentStatus == TIPStatus.COMPLETE) { successfulAttempt.write(out); } }
public void readFields(DataInput in) throws IOException { this.taskid.readFields(in); this.progress = in.readFloat(); this.state = StringInterner.weakIntern(Text.readString(in)); this.startTime = in.readLong(); this.finishTime = in.readLong(); diagnostics = WritableUtils.readStringArray(in); counters = new Counters(); counters.readFields(in); currentStatus = WritableUtils.readEnum(in, TIPStatus.class); if (currentStatus == TIPStatus.RUNNING) { int num = WritableUtils.readVInt(in); for (int i = 0; i < num; i++) { TaskAttemptID t = new TaskAttemptID(); t.readFields(in); runningAttempts.add(t); } } else if (currentStatus == TIPStatus.COMPLETE) { successfulAttempt.readFields(in); } }
/** * Display the information about a job's tasks, of a particular type and * in a particular state * * @param job the job * @param type the type of the task (map/reduce/setup/cleanup) * @param state the state of the task * (pending/running/completed/failed/killed) */ protected void displayTasks(Job job, String type, String state) throws IOException, InterruptedException { TaskReport[] reports = job.getTaskReports(TaskType.valueOf( org.apache.hadoop.util.StringUtils.toUpperCase(type))); for (TaskReport report : reports) { TIPStatus status = report.getCurrentStatus(); if ((state.equalsIgnoreCase("pending") && status ==TIPStatus.PENDING) || (state.equalsIgnoreCase("running") && status ==TIPStatus.RUNNING) || (state.equalsIgnoreCase("completed") && status == TIPStatus.COMPLETE) || (state.equalsIgnoreCase("failed") && status == TIPStatus.FAILED) || (state.equalsIgnoreCase("killed") && status == TIPStatus.KILLED)) { printTaskAttempts(report); } } }
/** * Display the information about a job's tasks, of a particular type and * in a particular state * * @param job the job * @param type the type of the task (map/reduce/setup/cleanup) * @param state the state of the task * (pending/running/completed/failed/killed) * @throws IOException when there is an error communicating with the master * @throws InterruptedException * @throws IllegalArgumentException if an invalid type/state is passed */ protected void displayTasks(Job job, String type, String state) throws IOException, InterruptedException { TaskReport[] reports=null; reports = job.getTaskReports(TaskType.valueOf( org.apache.hadoop.util.StringUtils.toUpperCase(type))); for (TaskReport report : reports) { TIPStatus status = report.getCurrentStatus(); if ((state.equalsIgnoreCase("pending") && status ==TIPStatus.PENDING) || (state.equalsIgnoreCase("running") && status ==TIPStatus.RUNNING) || (state.equalsIgnoreCase("completed") && status == TIPStatus.COMPLETE) || (state.equalsIgnoreCase("failed") && status == TIPStatus.FAILED) || (state.equalsIgnoreCase("killed") && status == TIPStatus.KILLED)) { printTaskAttempts(report); } } }
public void readFields(DataInput in) throws IOException { this.taskid.readFields(in); this.progress = in.readFloat(); this.state = Text.readString(in); this.startTime = in.readLong(); this.finishTime = in.readLong(); diagnostics = WritableUtils.readStringArray(in); counters = new Counters(); counters.readFields(in); currentStatus = WritableUtils.readEnum(in, TIPStatus.class); if (currentStatus == TIPStatus.RUNNING) { int num = WritableUtils.readVInt(in); for (int i = 0; i < num; i++) { TaskAttemptID t = new TaskAttemptID(); t.readFields(in); runningAttempts.add(t); } } else if (currentStatus == TIPStatus.COMPLETE) { successfulAttempt.readFields(in); } }
/** * Creates a new TaskReport object * @param taskid * @param progress * @param state * @param diagnostics * @param currentStatus * @param startTime * @param finishTime * @param counters */ public TaskReport(TaskID taskid, float progress, String state, String[] diagnostics, TIPStatus currentStatus, long startTime, long finishTime, Counters counters) { this.taskid = taskid; this.progress = progress; this.state = state; this.diagnostics = diagnostics; this.currentStatus = currentStatus; this.startTime = startTime; this.finishTime = finishTime; this.counters = counters; }
private void printTaskAttempts(TaskReport report) { if (report.getCurrentStatus() == TIPStatus.COMPLETE) { System.out.println(report.getSuccessfulTaskAttemptId()); } else if (report.getCurrentStatus() == TIPStatus.RUNNING) { for (TaskAttemptID t : report.getRunningTaskAttemptIds()) { System.out.println(t); } } }
/** * Display the information about a job's tasks, of a particular type and * in a particular state * * @param job the job * @param type the type of the task (map/reduce/setup/cleanup) * @param state the state of the task * (pending/running/completed/failed/killed) */ protected void displayTasks(Job job, String type, String state) throws IOException, InterruptedException { TaskReport[] reports = job.getTaskReports(TaskType.valueOf(type.toUpperCase())); for (TaskReport report : reports) { TIPStatus status = report.getCurrentStatus(); if ((state.equalsIgnoreCase("pending") && status ==TIPStatus.PENDING) || (state.equalsIgnoreCase("running") && status ==TIPStatus.RUNNING) || (state.equalsIgnoreCase("completed") && status == TIPStatus.COMPLETE) || (state.equalsIgnoreCase("failed") && status == TIPStatus.FAILED) || (state.equalsIgnoreCase("killed") && status == TIPStatus.KILLED)) { printTaskAttempts(report); } } }
/** * Display the information about a job's tasks, of a particular type and * in a particular state * * @param job the job * @param type the type of the task (map/reduce/setup/cleanup) * @param state the state of the task * (pending/running/completed/failed/killed) */ protected void displayTasks(Job job, String type, String state) throws IOException, InterruptedException { TaskReport[] reports = job.getTaskReports(TaskType.valueOf(type.toUpperCase())); for (TaskReport report : reports) { TIPStatus status = report.getCurrentStatus(); if ((state.equals("pending") && status ==TIPStatus.PENDING) || (state.equals("running") && status ==TIPStatus.RUNNING) || (state.equals("completed") && status == TIPStatus.COMPLETE) || (state.equals("failed") && status == TIPStatus.FAILED) || (state.equals("killed") && status == TIPStatus.KILLED)) { printTaskAttempts(report); } } }