blob: 28b2e72637c2fccd54961820ef960fa219da2cd2 [file] [log] [blame]
/**
* 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.mapred;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import org.apache.hadoop.mapred.JobStatus;
import org.apache.hadoop.mapreduce.JobID;
import org.apache.hadoop.mapreduce.test.system.JobInfo;
/**
* Concrete implementation of the JobInfo interface which is exposed to the
* clients.
* Look at {@link JobInfo} for further details.
*/
class JobInfoImpl implements JobInfo {
private List<String> blackListedTracker;
private String historyUrl;
private JobID id;
private boolean setupLaunched;
private boolean setupFinished;
private boolean cleanupLaunched;
private JobStatus status;
private int runningMaps;
private int runningReduces;
private int waitingMaps;
private int waitingReduces;
private int finishedMaps;
private int finishedReduces;
private int numMaps;
private int numReduces;
private boolean historyCopied;
public JobInfoImpl() {
id = new JobID();
status = new JobStatus();
blackListedTracker = new LinkedList<String>();
historyUrl = "";
}
public JobInfoImpl(
JobID id, boolean setupLaunched, boolean setupFinished,
boolean cleanupLaunched, int runningMaps, int runningReduces,
int waitingMaps, int waitingReduces, int finishedMaps,
int finishedReduces, JobStatus status, String historyUrl,
List<String> blackListedTracker, boolean isComplete, int numMaps,
int numReduces, boolean historyCopied) {
super();
this.blackListedTracker = blackListedTracker;
this.historyUrl = historyUrl;
this.id = id;
this.setupLaunched = setupLaunched;
this.setupFinished = setupFinished;
this.cleanupLaunched = cleanupLaunched;
this.status = status;
this.runningMaps = runningMaps;
this.runningReduces = runningReduces;
this.waitingMaps = waitingMaps;
this.waitingReduces = waitingReduces;
this.finishedMaps = finishedMaps;
this.finishedReduces = finishedReduces;
this.numMaps = numMaps;
this.numReduces = numReduces;
this.historyCopied = historyCopied;
}
@Override
public List<String> getBlackListedTrackers() {
return blackListedTracker;
}
@Override
public String getHistoryUrl() {
return historyUrl;
}
@Override
public JobID getID() {
return id;
}
@Override
public JobStatus getStatus() {
return status;
}
@Override
public boolean isCleanupLaunched() {
return cleanupLaunched;
}
@Override
public boolean isSetupLaunched() {
return setupLaunched;
}
@Override
public boolean isSetupFinished() {
return setupFinished;
}
@Override
public int runningMaps() {
return runningMaps;
}
@Override
public int runningReduces() {
return runningReduces;
}
@Override
public int waitingMaps() {
return waitingMaps;
}
@Override
public int waitingReduces() {
return waitingReduces;
}
@Override
public int finishedMaps() {
return finishedMaps;
}
@Override
public int finishedReduces() {
return finishedReduces;
}
@Override
public int numMaps() {
return numMaps;
}
@Override
public int numReduces() {
return numReduces;
}
@Override
public boolean isHistoryFileCopied() {
return historyCopied;
}
@Override
public void readFields(DataInput in) throws IOException {
id.readFields(in);
setupLaunched = in.readBoolean();
setupFinished = in.readBoolean();
cleanupLaunched = in.readBoolean();
status.readFields(in);
runningMaps = in.readInt();
runningReduces = in.readInt();
waitingMaps = in.readInt();
waitingReduces = in.readInt();
historyUrl = in.readUTF();
int size = in.readInt();
for (int i = 0; i < size; i++) {
blackListedTracker.add(in.readUTF());
}
finishedMaps = in.readInt();
finishedReduces = in.readInt();
numMaps = in.readInt();
numReduces = in.readInt();
historyCopied = in.readBoolean();
}
@Override
public void write(DataOutput out) throws IOException {
id.write(out);
out.writeBoolean(setupLaunched);
out.writeBoolean(setupFinished);
out.writeBoolean(cleanupLaunched);
status.write(out);
out.writeInt(runningMaps);
out.writeInt(runningReduces);
out.writeInt(waitingMaps);
out.writeInt(waitingReduces);
out.writeUTF(historyUrl);
out.writeInt(blackListedTracker.size());
for (String str : blackListedTracker) {
out.writeUTF(str);
}
out.writeInt(finishedMaps);
out.writeInt(finishedReduces);
out.writeInt(numMaps);
out.writeInt(numReduces);
out.writeBoolean(historyCopied);
}
}