| /** |
| * 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); |
| } |
| |
| |
| } |