diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRCJCFileOutputCommitter.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRCJCFileOutputCommitter.java index 74b6d77f6a0..83796e8d85b 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRCJCFileOutputCommitter.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRCJCFileOutputCommitter.java @@ -25,6 +25,8 @@ import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.JobStatus; +import org.apache.hadoop.test.GenericTestUtils; +import org.junit.After; import org.junit.Test; import java.io.File; @@ -37,8 +39,7 @@ import static org.junit.Assert.assertTrue; public class TestMRCJCFileOutputCommitter { - private static Path outDir = new Path( - System.getProperty("test.build.data", "/tmp"), "output"); + private static Path outDir = new Path(GenericTestUtils.getTempPath("output")); // A random task attempt id for testing. private static String attempt = "attempt_200707121733_0001_m_000000_0"; @@ -112,12 +113,11 @@ public void testCommitter() throws Exception { expectedOutput.append(key2).append('\t').append(val2).append("\n"); String output = UtilsForTests.slurp(expectedFile); assertEquals(output, expectedOutput.toString()); - - FileUtil.fullyDelete(new File(outDir.toString())); } @Test public void testAbort() throws IOException { + FileUtil.fullyDelete(new File(outDir.toString())); JobConf job = new JobConf(); setConfForFileOutputCommitter(job); JobContext jContext = new JobContextImpl(job, taskID.getJobID()); @@ -152,7 +152,6 @@ public void testAbort() throws IOException { assertFalse("job temp dir "+expectedFile+" still exists", expectedFile.exists()); assertEquals("Output directory not empty", 0, new File(outDir.toString()) .listFiles().length); - FileUtil.fullyDelete(new File(outDir.toString())); } public static class FakeFileSystem extends RawLocalFileSystem { @@ -223,4 +222,9 @@ public void testFailAbort() throws IOException { assertTrue(th.getMessage().contains("fake delete failed")); assertTrue("job temp dir does not exists", jobTmpDir.exists()); } + + @After + public void teardown() { + FileUtil.fullyDelete(new File(outDir.toString())); + } } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java index 40ed9ad1160..140591c2f84 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java @@ -19,11 +19,13 @@ package org.apache.hadoop.mapred; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.MRJobConfig; import org.apache.hadoop.mapreduce.jobhistory.EventType; import org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler; import org.apache.hadoop.mapreduce.v2.MiniMRYarnCluster; +import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.yarn.api.records.timeline.TimelineEntities; import org.apache.hadoop.yarn.api.records.timeline.TimelineEntity; import org.apache.hadoop.yarn.conf.YarnConfiguration; @@ -145,21 +147,21 @@ public void testMapreduceJobTimelineServiceEnabled() conf.setBoolean(YarnConfiguration.TIMELINE_SERVICE_ENABLED, true); conf.setBoolean(MRJobConfig.MAPREDUCE_JOB_EMIT_TIMELINE_DATA, false); MiniMRYarnCluster cluster = null; + FileSystem fs = null; + Path inDir = new Path(GenericTestUtils.getTempPath("input")); + Path outDir = new Path(GenericTestUtils.getTempPath("output")); try { + fs = FileSystem.get(conf); cluster = new MiniMRYarnCluster( TestJobHistoryEventHandler.class.getSimpleName(), 1); cluster.init(conf); cluster.start(); conf.set(YarnConfiguration.TIMELINE_SERVICE_WEBAPP_ADDRESS, MiniYARNCluster.getHostname() + ":" - + cluster.getApplicationHistoryServer().getPort()); + + cluster.getApplicationHistoryServer().getPort()); TimelineStore ts = cluster.getApplicationHistoryServer() .getTimelineStore(); - String localPathRoot = System.getProperty("test.build.data", - "build/test/data"); - Path inDir = new Path(localPathRoot, "input"); - Path outDir = new Path(localPathRoot, "output"); RunningJob job = UtilsForTests.runJobSucceed(new JobConf(conf), inDir, outDir); Assert.assertEquals(JobStatus.SUCCEEDED, @@ -181,6 +183,7 @@ public void testMapreduceJobTimelineServiceEnabled() if (cluster != null) { cluster.stop(); } + deletePaths(fs, inDir, outDir); } conf = new YarnConfiguration(); @@ -194,15 +197,10 @@ public void testMapreduceJobTimelineServiceEnabled() cluster.start(); conf.set(YarnConfiguration.TIMELINE_SERVICE_WEBAPP_ADDRESS, MiniYARNCluster.getHostname() + ":" - + cluster.getApplicationHistoryServer().getPort()); + + cluster.getApplicationHistoryServer().getPort()); TimelineStore ts = cluster.getApplicationHistoryServer() .getTimelineStore(); - String localPathRoot = System.getProperty("test.build.data", - "build/test/data"); - Path inDir = new Path(localPathRoot, "input"); - Path outDir = new Path(localPathRoot, "output"); - conf.setBoolean(MRJobConfig.MAPREDUCE_JOB_EMIT_TIMELINE_DATA, false); RunningJob job = UtilsForTests.runJobSucceed(new JobConf(conf), inDir, outDir); @@ -225,6 +223,20 @@ public void testMapreduceJobTimelineServiceEnabled() if (cluster != null) { cluster.stop(); } + deletePaths(fs, inDir, outDir); + } + } + + /** Delete input paths recursively. Paths should not be null. */ + private void deletePaths(FileSystem fs, Path... paths) { + if (fs == null) { + return; + } + for (Path path : paths) { + try { + fs.delete(path, true); + } catch (Exception ignored) { + } } } }