You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by sh...@apache.org on 2011/04/12 11:48:20 UTC
svn commit: r1091350 - in /hadoop/mapreduce/branches/MR-279:
mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/
mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/
mr-client/hadoop-mapr...
Author: sharad
Date: Tue Apr 12 09:48:19 2011
New Revision: 1091350
URL: http://svn.apache.org/viewvc?rev=1091350&view=rev
Log:
Added Clock interface. Used in MR Application Master. Contributed by Sharad Agarwal.
Added:
hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/Clock.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/SystemClock.java
Removed:
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/Clock.java
Modified:
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapTaskAttemptImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/ReduceTaskAttemptImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/TaskAttemptListenerImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/JobHistoryEventHandler.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/AppContext.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/TaskHeartbeatHandler.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/MapTaskImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/ReduceTaskImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskImpl.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/speculate/DefaultSpeculator.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRApp.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestJobHistoryParsing.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRMContainerAllocator.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryEvents.java
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapTaskAttemptImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapTaskAttemptImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapTaskAttemptImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapTaskAttemptImpl.java Tue Apr 12 09:48:19 2011
@@ -32,6 +32,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
public class MapTaskAttemptImpl extends TaskAttemptImpl {
@@ -43,10 +44,10 @@ public class MapTaskAttemptImpl extends
int partition, TaskSplitMetaInfo splitInfo, Configuration conf,
TaskAttemptListener taskAttemptListener,
OutputCommitter committer, Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
super(taskId, attempt, eventHandler,
taskAttemptListener, jobFile, partition, conf, splitInfo.getLocations(),
- committer, jobToken, fsTokens);
+ committer, jobToken, fsTokens, clock);
this.splitInfo = splitInfo;
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/ReduceTaskAttemptImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/ReduceTaskAttemptImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/ReduceTaskAttemptImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/ReduceTaskAttemptImpl.java Tue Apr 12 09:48:19 2011
@@ -31,6 +31,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -43,9 +44,9 @@ public class ReduceTaskAttemptImpl exten
int numMapTasks, Configuration conf,
TaskAttemptListener taskAttemptListener, OutputCommitter committer,
Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
super(id, attempt, eventHandler, taskAttemptListener, jobFile, partition,
- conf, new String[] {}, committer, jobToken, fsTokens);
+ conf, new String[] {}, committer, jobToken, fsTokens, clock);
this.numMapTasks = numMapTasks;
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/TaskAttemptListenerImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/TaskAttemptListenerImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/TaskAttemptListenerImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/TaskAttemptListenerImpl.java Tue Apr 12 09:48:19 2011
@@ -91,7 +91,8 @@ public class TaskAttemptListenerImpl ext
}
protected void registerHeartbeatHandler() {
- taskHeartbeatHandler = new TaskHeartbeatHandler(context.getEventHandler());
+ taskHeartbeatHandler = new TaskHeartbeatHandler(context.getEventHandler(),
+ context.getClock());
addService(taskHeartbeatHandler);
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/JobHistoryEventHandler.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/JobHistoryEventHandler.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/JobHistoryEventHandler.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/jobhistory/JobHistoryEventHandler.java Tue Apr 12 09:48:19 2011
@@ -37,6 +37,7 @@ import org.apache.hadoop.fs.permission.F
import org.apache.hadoop.mapreduce.MRJobConfig;
import org.apache.hadoop.mapreduce.TypeConverter;
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
+import org.apache.hadoop.mapreduce.v2.app.AppContext;
import org.apache.hadoop.mapreduce.v2.YarnMRJobConfig;
import org.apache.hadoop.yarn.YarnException;
import org.apache.hadoop.yarn.conf.YARNApplicationConstants;
@@ -53,6 +54,8 @@ import org.apache.hadoop.yarn.service.Ab
public class JobHistoryEventHandler extends AbstractService
implements EventHandler<JobHistoryEvent> {
+ private final AppContext context;
+
private FileContext logDirFc; // log Dir FileContext
private FileContext doneDirFc; // done Dir FileContext
@@ -76,8 +79,9 @@ public class JobHistoryEventHandler exte
public static final FsPermission HISTORY_FILE_PERMISSION =
FsPermission.createImmutable((short) 0740); // rwxr-----
- public JobHistoryEventHandler() {
+ public JobHistoryEventHandler(AppContext context) {
super("JobHistoryEventHandler");
+ this.context = context;
}
@Override
@@ -117,7 +121,6 @@ public class JobHistoryEventHandler exte
throw new YarnException(ioe);
}
super.init(conf);
- start();
}
@Override
@@ -167,7 +170,7 @@ public class JobHistoryEventHandler exte
MetaInfo oldFi = fileMap.get(jobId);
- long submitTime = (oldFi == null ? System.currentTimeMillis() : oldFi.submitTime);
+ long submitTime = (oldFi == null ? context.getClock().getTime() : oldFi.submitTime);
Path logFile = getJobHistoryFile(logDirPath, jobId);
// String user = conf.get(MRJobConfig.USER_NAME, System.getProperty("user.name"));
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/AppContext.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/AppContext.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/AppContext.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/AppContext.java Tue Apr 12 09:48:19 2011
@@ -22,6 +22,7 @@ import java.util.Map;
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -41,4 +42,5 @@ public interface AppContext {
EventHandler getEventHandler();
+ Clock getClock();
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java Tue Apr 12 09:48:19 2011
@@ -67,6 +67,8 @@ import org.apache.hadoop.security.Creden
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
+import org.apache.hadoop.yarn.SystemClock;
import org.apache.hadoop.yarn.YarnException;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.conf.YARNApplicationConstants;
@@ -117,14 +119,11 @@ public class MRAppMaster extends Composi
private Job job;
public MRAppMaster(ApplicationId applicationId) {
- this(applicationId, null);
+ this(applicationId, new SystemClock());
}
public MRAppMaster(ApplicationId applicationId, Clock clock) {
super(MRAppMaster.class.getName());
- if (clock == null) {
- clock = new Clock();
- }
this.clock = clock;
this.appID = applicationId;
LOG.info("Created MRAppMaster for application " + applicationId);
@@ -151,7 +150,8 @@ public class MRAppMaster extends Composi
//service to log job history events
EventHandler<JobHistoryEvent> historyService =
- createJobHistoryHandler(conf);
+ createJobHistoryHandler(context);
+ addIfService(historyService);
JobEventDispatcher synchronousJobEventDispatcher = new JobEventDispatcher();
@@ -252,7 +252,8 @@ public class MRAppMaster extends Composi
// create single job
Job newJob = new JobImpl(appID, conf, dispatcher.getEventHandler(),
- taskAttemptListener, jobTokenSecretManager, fsTokens);
+ taskAttemptListener, jobTokenSecretManager, fsTokens,
+ clock);
((RunningAppContext) context).jobs.put(newJob.getID(), newJob);
dispatcher.register(JobFinishEvent.Type.class,
@@ -304,9 +305,8 @@ public class MRAppMaster extends Composi
}
protected EventHandler<JobHistoryEvent> createJobHistoryHandler(
- Configuration conf) {
- JobHistoryEventHandler eventHandler = new JobHistoryEventHandler();
- eventHandler.init(conf);
+ AppContext context) {
+ JobHistoryEventHandler eventHandler = new JobHistoryEventHandler(context);
return eventHandler;
}
@@ -433,6 +433,10 @@ public class MRAppMaster extends Composi
return getConfig().get(MRJobConfig.USER_NAME);
}
+ @Override
+ public Clock getClock() {
+ return clock;
+ }
}
@Override
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/TaskHeartbeatHandler.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/TaskHeartbeatHandler.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/TaskHeartbeatHandler.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/TaskHeartbeatHandler.java Tue Apr 12 09:48:19 2011
@@ -29,6 +29,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptDiagnosticsUpdateEvent;
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEvent;
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEventType;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
import org.apache.hadoop.yarn.service.AbstractService;
@@ -49,14 +50,16 @@ public class TaskHeartbeatHandler extend
private volatile boolean stopped;
private int taskTimeOut = 5*60*1000;//5 mins
- private EventHandler eventHandler;
+ private final EventHandler eventHandler;
+ private final Clock clock;
private Map<TaskAttemptId, Long> runningAttempts
= new HashMap<TaskAttemptId, Long>();
- public TaskHeartbeatHandler(EventHandler eventHandler) {
+ public TaskHeartbeatHandler(EventHandler eventHandler, Clock clock) {
super("TaskHeartbeatHandler");
this.eventHandler = eventHandler;
+ this.clock = clock;
}
@Override
@@ -82,12 +85,12 @@ public class TaskHeartbeatHandler extend
public synchronized void receivedPing(TaskAttemptId attemptID) {
//only put for the registered attempts
if (runningAttempts.containsKey(attemptID)) {
- runningAttempts.put(attemptID, System.currentTimeMillis());
+ runningAttempts.put(attemptID, clock.getTime());
}
}
public synchronized void register(TaskAttemptId attemptID) {
- runningAttempts.put(attemptID, System.currentTimeMillis());
+ runningAttempts.put(attemptID, clock.getTime());
}
public synchronized void unregister(TaskAttemptId attemptID) {
@@ -104,7 +107,7 @@ public class TaskHeartbeatHandler extend
runningAttempts.entrySet().iterator();
//avoid calculating current time everytime in loop
- long currentTime = System.currentTimeMillis();
+ long currentTime = clock.getTime();
while (iterator.hasNext()) {
Map.Entry<TaskAttemptId, Long> entry = iterator.next();
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java Tue Apr 12 09:48:19 2011
@@ -92,6 +92,7 @@ import org.apache.hadoop.security.UserGr
import org.apache.hadoop.security.authorize.AccessControlList;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.util.ReflectionUtils;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.YarnException;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.conf.YARNApplicationConstants;
@@ -124,6 +125,7 @@ public class JobImpl implements org.apac
private final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null);
//final fields
+ private final Clock clock;
private final Lock readLock;
private final Lock writeLock;
private final JobId jobId;
@@ -327,10 +329,11 @@ public class JobImpl implements org.apac
public JobImpl(ApplicationId appID, Configuration conf,
EventHandler eventHandler, TaskAttemptListener taskAttemptListener,
JobTokenSecretManager jobTokenSecretManager,
- Credentials fsTokenCredentials) {
+ Credentials fsTokenCredentials, Clock clock) {
this.jobId = recordFactory.newRecordInstance(JobId.class);
this.conf = conf;
+ this.clock = clock;
jobId.setAppId(appID);
jobId.setId(appID.getId());
oldJobId = TypeConverter.fromYarn(jobId);
@@ -615,7 +618,7 @@ public class JobImpl implements org.apac
}
private void finished() {
- finishTime = System.currentTimeMillis();
+ finishTime = clock.getTime();
eventHandler.handle(new JobFinishEvent(jobId));
}
@@ -647,7 +650,7 @@ public class JobImpl implements org.apac
*/
@Override
public JobState transition(JobImpl job, JobEvent event) {
- job.startTime = System.currentTimeMillis();
+ job.startTime = job.clock.getTime();
try {
setup(job);
job.jobContext = new JobContextImpl(job.conf,
@@ -880,7 +883,8 @@ public class JobImpl implements org.apac
job.remoteJobConfFile,
job.conf, splits[i],
job.taskAttemptListener,
- job.committer, job.jobToken, job.fsTokens.getAllTokens());
+ job.committer, job.jobToken, job.fsTokens.getAllTokens(),
+ job.clock);
job.addTask(task);
}
LOG.info("Input size for job " + job.jobId + " = " + inputLength
@@ -895,7 +899,7 @@ public class JobImpl implements org.apac
job.remoteJobConfFile,
job.conf, job.numMapTasks,
job.taskAttemptListener, job.committer, job.jobToken,
- job.fsTokens.getAllTokens());
+ job.fsTokens.getAllTokens(), job.clock);
job.addTask(task);
}
LOG.info("Number of reduces for job " + job.jobId + " = "
@@ -932,7 +936,7 @@ public class JobImpl implements org.apac
*/
@Override
public void transition(JobImpl job, JobEvent event) {
- job.startTime = System.currentTimeMillis();
+ job.startTime = job.clock.getTime();
job.scheduleTasks(job.mapTasks); // schedule (i.e., start) the maps
JobInitedEvent jie =
new JobInitedEvent(TypeConverter.fromYarn(job.jobId),
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/MapTaskImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/MapTaskImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/MapTaskImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/MapTaskImpl.java Tue Apr 12 09:48:19 2011
@@ -33,6 +33,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.TaskAttemptListener;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -45,9 +46,9 @@ public class MapTaskImpl extends TaskImp
TaskSplitMetaInfo taskSplitMetaInfo,
TaskAttemptListener taskAttemptListener, OutputCommitter committer,
Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
super(jobId, TaskType.MAP, partition, eventHandler, remoteJobConfFile,
- conf, taskAttemptListener, committer, jobToken, fsTokens);
+ conf, taskAttemptListener, committer, jobToken, fsTokens, clock);
this.taskSplitMetaInfo = taskSplitMetaInfo;
}
@@ -61,7 +62,7 @@ public class MapTaskImpl extends TaskImp
return new MapTaskAttemptImpl(getID(), nextAttemptNumber,
eventHandler, jobFile,
partition, taskSplitMetaInfo, conf, taskAttemptListener,
- committer, jobToken, fsTokens);
+ committer, jobToken, fsTokens, clock);
}
@Override
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/ReduceTaskImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/ReduceTaskImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/ReduceTaskImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/ReduceTaskImpl.java Tue Apr 12 09:48:19 2011
@@ -31,6 +31,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.TaskAttemptListener;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
public class ReduceTaskImpl extends TaskImpl {
@@ -41,9 +42,9 @@ public class ReduceTaskImpl extends Task
EventHandler eventHandler, Path jobFile, Configuration conf,
int numMapTasks, TaskAttemptListener taskAttemptListener,
OutputCommitter committer, Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
super(jobId, TaskType.REDUCE, partition, eventHandler, jobFile, conf,
- taskAttemptListener, committer, jobToken, fsTokens);
+ taskAttemptListener, committer, jobToken, fsTokens, clock);
this.numMapTasks = numMapTasks;
}
@@ -57,7 +58,7 @@ public class ReduceTaskImpl extends Task
return new ReduceTaskAttemptImpl(getID(), nextAttemptNumber,
eventHandler, jobFile,
partition, numMapTasks, conf, taskAttemptListener,
- committer, jobToken, fsTokens);
+ committer, jobToken, fsTokens, clock);
}
@Override
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java Tue Apr 12 09:48:19 2011
@@ -82,6 +82,7 @@ import org.apache.hadoop.security.Creden
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.YarnException;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
@@ -127,6 +128,7 @@ public abstract class TaskAttemptImpl im
protected final int partition;
protected final EventHandler eventHandler;
private final TaskAttemptId attemptId;
+ private final Clock clock;
private final org.apache.hadoop.mapred.JobID oldJobId;
private final TaskAttemptListener taskAttemptListener;
private final OutputCommitter committer;
@@ -378,9 +380,10 @@ public abstract class TaskAttemptImpl im
TaskAttemptListener taskAttemptListener, Path jobFile, int partition,
Configuration conf, String[] dataLocalHosts, OutputCommitter committer,
Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
oldJobId = TypeConverter.fromYarn(taskId.getJobId());
this.conf = conf;
+ this.clock = clock;
attemptId = recordFactory.newRecordInstance(TaskAttemptId.class);
attemptId.setTaskId(taskId);
attemptId.setId(i);
@@ -811,7 +814,7 @@ public abstract class TaskAttemptImpl im
private void setFinishTime() {
//set the finish time only if launch time is set
if (launchTime != 0) {
- finishTime = System.currentTimeMillis();
+ finishTime = clock.getTime();
}
}
@@ -917,7 +920,7 @@ public abstract class TaskAttemptImpl im
public void transition(TaskAttemptImpl taskAttempt,
TaskAttemptEvent event) {
//set the launch time
- taskAttempt.launchTime = System.currentTimeMillis();
+ taskAttempt.launchTime = taskAttempt.clock.getTime();
// register it to TaskAttemptListener so that it start listening
// for it
taskAttempt.taskAttemptListener.register(
@@ -931,7 +934,7 @@ public abstract class TaskAttemptImpl im
(new JobHistoryEvent(taskAttempt.attemptId.getTaskId().getJobId(), tase));
taskAttempt.eventHandler.handle
(new SpeculatorEvent
- (taskAttempt.attemptId, true, System.currentTimeMillis()));
+ (taskAttempt.attemptId, true, taskAttempt.clock.getTime()));
//make remoteTask reference as null as it is no more needed
//and free up the memory
taskAttempt.remoteTask = null;
@@ -1143,7 +1146,7 @@ public abstract class TaskAttemptImpl im
// send event to speculator about the reported status
taskAttempt.eventHandler.handle
(new SpeculatorEvent
- (taskAttempt.reportedStatus, System.currentTimeMillis()));
+ (taskAttempt.reportedStatus, taskAttempt.clock.getTime()));
//add to diagnostic
taskAttempt.addDiagnosticInfo(newReportedStatus.diagnosticInfo);
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskImpl.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskImpl.java Tue Apr 12 09:48:19 2011
@@ -64,6 +64,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskTAttemptEvent;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.event.EventHandler;
import org.apache.hadoop.yarn.factories.RecordFactory;
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
@@ -89,6 +90,7 @@ public abstract class TaskImpl implement
private final TaskId taskId;
private Map<TaskAttemptId, TaskAttempt> attempts;
private final int maxAttempts;
+ protected final Clock clock;
private final Lock readLock;
private final Lock writeLock;
@@ -217,8 +219,9 @@ public abstract class TaskImpl implement
EventHandler eventHandler, Path remoteJobConfFile, Configuration conf,
TaskAttemptListener taskAttemptListener, OutputCommitter committer,
Token<JobTokenIdentifier> jobToken,
- Collection<Token<? extends TokenIdentifier>> fsTokens) {
+ Collection<Token<? extends TokenIdentifier>> fsTokens, Clock clock) {
this.conf = conf;
+ this.clock = clock;
this.jobFile = remoteJobConfFile;
ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
readLock = readWriteLock.readLock();
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/speculate/DefaultSpeculator.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/speculate/DefaultSpeculator.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/speculate/DefaultSpeculator.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/speculate/DefaultSpeculator.java Tue Apr 12 09:48:19 2011
@@ -41,13 +41,13 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.api.records.TaskId;
import org.apache.hadoop.mapreduce.v2.api.records.TaskType;
import org.apache.hadoop.mapreduce.v2.app.AppContext;
-import org.apache.hadoop.mapreduce.v2.app.Clock;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
import org.apache.hadoop.mapreduce.v2.app.job.Task;
import org.apache.hadoop.mapreduce.v2.app.job.TaskAttempt;
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskEvent;
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskEventType;
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptStatusUpdateEvent.TaskAttemptStatus;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.YarnException;
import org.apache.hadoop.yarn.event.EventHandler;
import org.apache.hadoop.yarn.service.AbstractService;
@@ -102,7 +102,7 @@ public class DefaultSpeculator extends A
private final EventHandler<TaskEvent> eventHandler;
public DefaultSpeculator(Configuration conf, AppContext context) {
- this(conf, context, new Clock());
+ this(conf, context, context.getClock());
}
public DefaultSpeculator(Configuration conf, AppContext context, Clock clock) {
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRApp.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRApp.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRApp.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRApp.java Tue Apr 12 09:48:19 2011
@@ -60,6 +60,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.taskclean.TaskCleaner;
import org.apache.hadoop.mapreduce.v2.app.taskclean.TaskCleanupEvent;
import org.apache.hadoop.security.Credentials;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -179,14 +180,9 @@ public class MRApp extends MRAppMaster {
public Job createJob(Configuration conf) {
Job newJob = new TestJob(getAppID(), getDispatcher().getEventHandler(),
- getTaskAttemptListener());
+ getTaskAttemptListener(), getContext().getClock());
((AppContext) getContext()).getAllJobs().put(newJob.getID(), newJob);
- // FIXME? why does this work? MRAppMaster init() already registered one...
- getDispatcher().register(
- org.apache.hadoop.mapreduce.jobhistory.EventType.class,
- createJobHistoryHandler(getConfig()));
-
getDispatcher().register(JobFinishEvent.Type.class,
new EventHandler<JobFinishEvent>() {
@Override
@@ -312,9 +308,9 @@ public class MRApp extends MRAppMaster {
}
public TestJob(ApplicationId appID, EventHandler eventHandler,
- TaskAttemptListener taskAttemptListener) {
+ TaskAttemptListener taskAttemptListener, Clock clock) {
super(appID, new Configuration(), eventHandler, taskAttemptListener,
- new JobTokenSecretManager(), new Credentials());
+ new JobTokenSecretManager(), new Credentials(), clock);
// This "this leak" is okay because the retained pointer is in an
// instance variable.
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestJobHistoryParsing.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestJobHistoryParsing.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestJobHistoryParsing.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestJobHistoryParsing.java Tue Apr 12 09:48:19 2011
@@ -30,16 +30,13 @@ import org.apache.hadoop.fs.FileContext;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.MRJobConfig;
import org.apache.hadoop.mapreduce.TypeConverter;
-import org.apache.hadoop.mapreduce.v2.YarnMRJobConfig;
-import org.apache.hadoop.mapreduce.jobhistory.JobHistoryEvent;
-import org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler;
import org.apache.hadoop.mapreduce.jobhistory.JobHistoryParser;
import org.apache.hadoop.mapreduce.jobhistory.JobHistoryParser.JobInfo;
import org.apache.hadoop.mapreduce.jobhistory.JobHistoryParser.TaskInfo;
+import org.apache.hadoop.mapreduce.v2.YarnMRJobConfig;
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
import org.apache.hadoop.mapreduce.v2.api.records.JobState;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
-import org.apache.hadoop.yarn.event.EventHandler;
import org.junit.Test;
public class TestJobHistoryParsing {
@@ -118,17 +115,6 @@ public class TestJobHistoryParsing {
jobInfo.getFinishedReduces() == 1);
}
- static class HistoryEnabledApp extends MRApp {
- public HistoryEnabledApp(int maps, int reduces, boolean autoComplete) {
- super(maps, reduces, autoComplete);
- }
-
- @Override
- protected EventHandler<JobHistoryEvent> createJobHistoryHandler(
- Configuration conf) {
- return new JobHistoryEventHandler();
- }
- }
public static void main(String[] args) throws Exception {
TestJobHistoryParsing t = new TestJobHistoryParsing();
t.testHistoryParsing();
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRMContainerAllocator.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRMContainerAllocator.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRMContainerAllocator.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRMContainerAllocator.java Tue Apr 12 09:48:19 2011
@@ -38,6 +38,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.rm.ContainerRequestEvent;
import org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator;
import org.apache.hadoop.net.NetworkTopology;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.api.AMRMProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest;
import org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse;
@@ -421,6 +422,11 @@ public class TestRMContainerAllocator {
public String getUser() {
return null;
}
+
+ @Override
+ public Clock getClock() {
+ return null;
+ }
}
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java Tue Apr 12 09:48:19 2011
@@ -45,7 +45,6 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.api.records.TaskState;
import org.apache.hadoop.mapreduce.v2.api.records.TaskType;
import org.apache.hadoop.mapreduce.v2.app.AppContext;
-import org.apache.hadoop.mapreduce.v2.app.Clock;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
import org.apache.hadoop.mapreduce.v2.app.job.Task;
import org.apache.hadoop.mapreduce.v2.app.job.TaskAttempt;
@@ -58,6 +57,8 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.speculate.Speculator;
import org.apache.hadoop.mapreduce.v2.app.speculate.SpeculatorEvent;
import org.apache.hadoop.mapreduce.v2.app.speculate.TaskRuntimeEstimator;
+import org.apache.hadoop.yarn.Clock;
+import org.apache.hadoop.yarn.SystemClock;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.event.AsyncDispatcher;
@@ -690,11 +691,10 @@ public class TestRuntimeEstimators {
}
}
- static class MockClock extends Clock {
+ static class MockClock implements Clock {
private long currentTime = 0;
- @Override
- long getMeasuredTime() {
+ public long getTime() {
return currentTime;
}
@@ -712,7 +712,7 @@ public class TestRuntimeEstimators {
public MyAppMaster(Clock clock) {
super(MyAppMaster.class.getName());
if (clock == null) {
- clock = new Clock();
+ clock = new SystemClock();
}
this.clock = clock;
LOG.info("Created MyAppMaster");
@@ -764,5 +764,10 @@ public class TestRuntimeEstimators {
public CharSequence getUser() {
throw new UnsupportedOperationException("Not supported yet.");
}
+
+ @Override
+ public Clock getClock() {
+ return clock;
+ }
}
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java Tue Apr 12 09:48:19 2011
@@ -27,6 +27,7 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.app.AppContext;
import org.apache.hadoop.mapreduce.v2.app.MockJobs;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
+import org.apache.hadoop.yarn.Clock;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.event.EventHandler;
import org.apache.hadoop.yarn.util.Apps;
@@ -76,6 +77,11 @@ public class TestAMWebApp {
public EventHandler getEventHandler() {
return null;
}
+
+ @Override
+ public Clock getClock() {
+ return null;
+ }
}
@Test public void testAppControllerIndex() {
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryEvents.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryEvents.java?rev=1091350&r1=1091349&r2=1091350&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryEvents.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryEvents.java Tue Apr 12 09:48:19 2011
@@ -103,18 +103,6 @@ public class TestJobHistoryEvents {
TaskAttemptState.SUCCEEDED, attempt.getState());
}
- static class HistoryEnabledApp extends MRApp {
- public HistoryEnabledApp(int maps, int reduces, boolean autoComplete) {
- super(maps, reduces, autoComplete);
- }
-
- @Override
- protected EventHandler<JobHistoryEvent> createJobHistoryHandler(
- Configuration conf) {
- return new JobHistoryEventHandler();
- }
- }
-
public static void main(String[] args) throws Exception {
TestJobHistoryEvents t = new TestJobHistoryEvents();
t.testHistoryEvents();
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/Clock.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/Clock.java?rev=1091350&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/Clock.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/Clock.java Tue Apr 12 09:48:19 2011
@@ -0,0 +1,24 @@
+/**
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.apache.hadoop.yarn;
+
+public interface Clock {
+
+ long getTime();
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/SystemClock.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/SystemClock.java?rev=1091350&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/SystemClock.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/SystemClock.java Tue Apr 12 09:48:19 2011
@@ -0,0 +1,25 @@
+/**
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.hadoop.yarn;
+
+public class SystemClock implements Clock {
+
+ public long getTime() {
+ return System.currentTimeMillis();
+ }
+}
\ No newline at end of file