001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.hadoop.mapred;
019
020 import java.util.ArrayList;
021 import java.util.Collection;
022 import java.util.List;
023
024 import org.apache.hadoop.classification.InterfaceAudience;
025 import org.apache.hadoop.classification.InterfaceStability;
026
027 /**
028 * A report on the state of a task.
029 */
030 @InterfaceAudience.Public
031 @InterfaceStability.Stable
032 public class TaskReport extends org.apache.hadoop.mapreduce.TaskReport {
033
034 public TaskReport() {
035 super();
036 }
037
038 /**
039 * Creates a new TaskReport object
040 * @param taskid
041 * @param progress
042 * @param state
043 * @param diagnostics
044 * @param startTime
045 * @param finishTime
046 * @param counters
047 * @deprecated
048 */
049 @Deprecated
050 TaskReport(TaskID taskid, float progress, String state,
051 String[] diagnostics, long startTime, long finishTime,
052 Counters counters) {
053 this(taskid, progress, state, diagnostics, null, startTime, finishTime,
054 counters);
055 }
056
057 /**
058 * Creates a new TaskReport object
059 * @param taskid
060 * @param progress
061 * @param state
062 * @param diagnostics
063 * @param currentStatus
064 * @param startTime
065 * @param finishTime
066 * @param counters
067 */
068 TaskReport(TaskID taskid, float progress, String state,
069 String[] diagnostics, TIPStatus currentStatus,
070 long startTime, long finishTime,
071 Counters counters) {
072 super(taskid, progress, state, diagnostics, currentStatus, startTime,
073 finishTime, new org.apache.hadoop.mapreduce.Counters(counters));
074 }
075
076 static TaskReport downgrade(
077 org.apache.hadoop.mapreduce.TaskReport report) {
078 return new TaskReport(TaskID.downgrade(report.getTaskID()),
079 report.getProgress(), report.getState(), report.getDiagnostics(),
080 report.getCurrentStatus(), report.getStartTime(), report.getFinishTime(),
081 Counters.downgrade(report.getTaskCounters()));
082 }
083
084 static TaskReport[] downgradeArray(org.apache.hadoop.
085 mapreduce.TaskReport[] reports) {
086 List<TaskReport> ret = new ArrayList<TaskReport>();
087 for (org.apache.hadoop.mapreduce.TaskReport report : reports) {
088 ret.add(downgrade(report));
089 }
090 return ret.toArray(new TaskReport[0]);
091 }
092
093 /** The string of the task id. */
094 public String getTaskId() {
095 return TaskID.downgrade(super.getTaskID()).toString();
096 }
097
098 /** The id of the task. */
099 public TaskID getTaskID() {
100 return TaskID.downgrade(super.getTaskID());
101 }
102
103 public Counters getCounters() {
104 return Counters.downgrade(super.getTaskCounters());
105 }
106
107 /**
108 * set successful attempt ID of the task.
109 */
110 public void setSuccessfulAttempt(TaskAttemptID t) {
111 super.setSuccessfulAttemptId(t);
112 }
113 /**
114 * Get the attempt ID that took this task to completion
115 */
116 public TaskAttemptID getSuccessfulTaskAttempt() {
117 return TaskAttemptID.downgrade(super.getSuccessfulTaskAttemptId());
118 }
119 /**
120 * set running attempt(s) of the task.
121 */
122 public void setRunningTaskAttempts(
123 Collection<TaskAttemptID> runningAttempts) {
124 Collection<org.apache.hadoop.mapreduce.TaskAttemptID> attempts =
125 new ArrayList<org.apache.hadoop.mapreduce.TaskAttemptID>();
126 for (TaskAttemptID id : runningAttempts) {
127 attempts.add(id);
128 }
129 super.setRunningTaskAttemptIds(attempts);
130 }
131 /**
132 * Get the running task attempt IDs for this task
133 */
134 public Collection<TaskAttemptID> getRunningTaskAttempts() {
135 Collection<TaskAttemptID> attempts = new ArrayList<TaskAttemptID>();
136 for (org.apache.hadoop.mapreduce.TaskAttemptID id :
137 super.getRunningTaskAttemptIds()) {
138 attempts.add(TaskAttemptID.downgrade(id));
139 }
140 return attempts;
141 }
142
143 /**
144 * set finish time of task.
145 * @param finishTime finish time of task.
146 */
147 protected void setFinishTime(long finishTime) {
148 super.setFinishTime(finishTime);
149 }
150
151 /**
152 * set start time of the task.
153 */
154 protected void setStartTime(long startTime) {
155 super.setStartTime(startTime);
156 }
157
158 }