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 ha...@apache.org on 2012/05/28 15:14:14 UTC
svn commit: r1343240 - in /hadoop/common/trunk/hadoop-mapreduce-project:
CHANGES.txt
hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
Author: harsh
Date: Mon May 28 13:14:14 2012
New Revision: 1343240
URL: http://svn.apache.org/viewvc?rev=1343240&view=rev
Log:
MAPREDUCE-2384. The job submitter should make sure to validate jobs before creation of necessary files. (harsh)
Modified:
hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt?rev=1343240&r1=1343239&r2=1343240&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt Mon May 28 13:14:14 2012
@@ -55,6 +55,9 @@ Trunk (unreleased changes)
MAPREDUCE-3302. Remove the last dependency call from
org.apache.hadoop.record package in MR. (harsh)
+ MAPREDUCE-2384. The job submitter should make sure to validate
+ jobs before creation of necessary files. (harsh)
+
BUG FIXES
MAPREDUCE-4100. [Gridmix] Bug fixed in compression emulation feature for
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java?rev=1343240&r1=1343239&r2=1343240&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java Mon May 28 13:14:14 2012
@@ -30,7 +30,11 @@ import java.io.PrintStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileAlreadyExistsException;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapred.ClusterMapReduceTestCase;
+import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.mapreduce.tools.CLI;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
@@ -65,6 +69,40 @@ public class TestMRJobClient extends Clu
}
}
+ private static class BadOutputFormat
+ extends TextOutputFormat {
+ @Override
+ public void checkOutputSpecs(JobContext job)
+ throws FileAlreadyExistsException, IOException {
+ throw new IOException();
+ }
+ }
+
+ @Test
+ public void testJobSubmissionSpecsAndFiles() throws Exception {
+ Configuration conf = createJobConf();
+ Job job = MapReduceTestUtil.createJob(conf,
+ getInputDir(), getOutputDir(), 1, 1);
+ job.setOutputFormatClass(BadOutputFormat.class);
+ try {
+ job.submit();
+ fail("Should've thrown an exception while checking output specs.");
+ } catch (Exception e) {
+ assertTrue(e instanceof IOException);
+ }
+ JobID jobId = job.getJobID();
+ Cluster cluster = new Cluster(conf);
+ Path jobStagingArea = JobSubmissionFiles.getStagingDir(
+ cluster,
+ job.getConfiguration());
+ Path submitJobDir = new Path(jobStagingArea, jobId.toString());
+ Path submitJobFile = JobSubmissionFiles.getJobConfPath(submitJobDir);
+ assertFalse(
+ "Shouldn't have created a job file if job specs failed.",
+ FileSystem.get(conf).exists(submitJobFile)
+ );
+ }
+
@Test
public void testJobClient() throws Exception {
Configuration conf = createJobConf();