MAPREDUCE-5815. Fixed test-failure of TestMRAppMaster by making MRAppMaster gracefully handle empty-queue names. Contributed by Akira Ajisaka.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1586559 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f8904ad299
commit
8d41b363b8
@ -189,6 +189,9 @@ Release 2.4.1 - UNRELEASED
|
|||||||
MAPREDUCE-5824. Fixed test-failure of TestPipesNonJavaInputFormat in
|
MAPREDUCE-5824. Fixed test-failure of TestPipesNonJavaInputFormat in
|
||||||
Windows. (Xuan Gong via vinodkv)
|
Windows. (Xuan Gong via vinodkv)
|
||||||
|
|
||||||
|
MAPREDUCE-5815. Fixed test-failure of TestMRAppMaster by making MRAppMaster
|
||||||
|
gracefully handle empty-queue names. (Akira Ajisaka via vinodkv)
|
||||||
|
|
||||||
Release 2.4.0 - 2014-04-07
|
Release 2.4.0 - 2014-04-07
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
import org.apache.hadoop.fs.FileUtil;
|
import org.apache.hadoop.fs.FileUtil;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.fs.permission.FsPermission;
|
import org.apache.hadoop.fs.permission.FsPermission;
|
||||||
|
import org.apache.hadoop.mapred.JobConf;
|
||||||
import org.apache.hadoop.mapreduce.Counter;
|
import org.apache.hadoop.mapreduce.Counter;
|
||||||
import org.apache.hadoop.mapreduce.Counters;
|
import org.apache.hadoop.mapreduce.Counters;
|
||||||
import org.apache.hadoop.mapreduce.JobCounter;
|
import org.apache.hadoop.mapreduce.JobCounter;
|
||||||
@ -442,8 +443,13 @@ protected void setupEventWriter(JobId jobId, String forcedJobStateOnShutDown)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String queueName = JobConf.DEFAULT_QUEUE_NAME;
|
||||||
|
if (conf != null) {
|
||||||
|
queueName = conf.get(MRJobConfig.QUEUE_NAME, JobConf.DEFAULT_QUEUE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
MetaInfo fi = new MetaInfo(historyFile, logDirConfPath, writer,
|
MetaInfo fi = new MetaInfo(historyFile, logDirConfPath, writer,
|
||||||
user, jobName, jobId, forcedJobStateOnShutDown);
|
user, jobName, jobId, forcedJobStateOnShutDown, queueName);
|
||||||
fi.getJobSummary().setJobId(jobId);
|
fi.getJobSummary().setJobId(jobId);
|
||||||
fileMap.put(jobId, fi);
|
fileMap.put(jobId, fi);
|
||||||
}
|
}
|
||||||
@ -816,12 +822,14 @@ protected class MetaInfo {
|
|||||||
private String forcedJobStateOnShutDown;
|
private String forcedJobStateOnShutDown;
|
||||||
|
|
||||||
MetaInfo(Path historyFile, Path conf, EventWriter writer, String user,
|
MetaInfo(Path historyFile, Path conf, EventWriter writer, String user,
|
||||||
String jobName, JobId jobId, String forcedJobStateOnShutDown) {
|
String jobName, JobId jobId, String forcedJobStateOnShutDown,
|
||||||
|
String queueName) {
|
||||||
this.historyFile = historyFile;
|
this.historyFile = historyFile;
|
||||||
this.confFile = conf;
|
this.confFile = conf;
|
||||||
this.writer = writer;
|
this.writer = writer;
|
||||||
this.jobIndexInfo =
|
this.jobIndexInfo =
|
||||||
new JobIndexInfo(-1, -1, user, jobName, jobId, -1, -1, null);
|
new JobIndexInfo(-1, -1, user, jobName, jobId, -1, -1, null,
|
||||||
|
queueName);
|
||||||
this.jobSummary = new JobSummary();
|
this.jobSummary = new JobSummary();
|
||||||
this.flushTimer = new Timer("FlushTimer", true);
|
this.flushTimer = new Timer("FlushTimer", true);
|
||||||
this.forcedJobStateOnShutDown = forcedJobStateOnShutDown;
|
this.forcedJobStateOnShutDown = forcedJobStateOnShutDown;
|
||||||
|
@ -94,7 +94,7 @@ public static String getDoneFileName(JobIndexInfo indexInfo) throws IOException
|
|||||||
sb.append(DELIMITER);
|
sb.append(DELIMITER);
|
||||||
|
|
||||||
//QueueName
|
//QueueName
|
||||||
sb.append(escapeDelimiters(indexInfo.getQueueName()));
|
sb.append(escapeDelimiters(getQueueName(indexInfo)));
|
||||||
sb.append(DELIMITER);
|
sb.append(DELIMITER);
|
||||||
|
|
||||||
//JobStartTime
|
//JobStartTime
|
||||||
@ -262,6 +262,10 @@ private static String getJobName(JobIndexInfo indexInfo) {
|
|||||||
return getNonEmptyString(indexInfo.getJobName());
|
return getNonEmptyString(indexInfo.getJobName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getQueueName(JobIndexInfo indexInfo) {
|
||||||
|
return getNonEmptyString(indexInfo.getQueueName());
|
||||||
|
}
|
||||||
|
|
||||||
//TODO Maybe handle default values for longs and integers here?
|
//TODO Maybe handle default values for longs and integers here?
|
||||||
|
|
||||||
private static String getNonEmptyString(String in) {
|
private static String getNonEmptyString(String in) {
|
||||||
|
@ -18,10 +18,11 @@
|
|||||||
|
|
||||||
package org.apache.hadoop.mapreduce.v2.jobhistory;
|
package org.apache.hadoop.mapreduce.v2.jobhistory;
|
||||||
|
|
||||||
|
import org.apache.hadoop.mapred.JobConf;
|
||||||
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
|
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maintains information which may be used by the jobHistroy indexing
|
* Maintains information which may be used by the jobHistory indexing
|
||||||
* system.
|
* system.
|
||||||
*/
|
*/
|
||||||
public class JobIndexInfo {
|
public class JobIndexInfo {
|
||||||
@ -41,6 +42,13 @@ public JobIndexInfo() {
|
|||||||
|
|
||||||
public JobIndexInfo(long submitTime, long finishTime, String user,
|
public JobIndexInfo(long submitTime, long finishTime, String user,
|
||||||
String jobName, JobId jobId, int numMaps, int numReduces, String jobStatus) {
|
String jobName, JobId jobId, int numMaps, int numReduces, String jobStatus) {
|
||||||
|
this(submitTime, finishTime, user, jobName, jobId, numMaps, numReduces,
|
||||||
|
jobStatus, JobConf.DEFAULT_QUEUE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
public JobIndexInfo(long submitTime, long finishTime, String user,
|
||||||
|
String jobName, JobId jobId, int numMaps, int numReduces,
|
||||||
|
String jobStatus, String queueName) {
|
||||||
this.submitTime = submitTime;
|
this.submitTime = submitTime;
|
||||||
this.finishTime = finishTime;
|
this.finishTime = finishTime;
|
||||||
this.user = user;
|
this.user = user;
|
||||||
@ -50,6 +58,7 @@ public JobIndexInfo(long submitTime, long finishTime, String user,
|
|||||||
this.numReduces = numReduces;
|
this.numReduces = numReduces;
|
||||||
this.jobStatus = jobStatus;
|
this.jobStatus = jobStatus;
|
||||||
this.jobStartTime = -1;
|
this.jobStartTime = -1;
|
||||||
|
this.queueName = queueName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getSubmitTime() {
|
public long getSubmitTime() {
|
||||||
|
Loading…
Reference in New Issue
Block a user