package hip.ch8.localjobrunner;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.junit.Test;
import java.io.IOException;
import static junit.framework.Assert.assertTrue;
public class IdentityWithBuilderTest {
@Test
public void run() throws Exception {
TextIOJobBuilder builder = new TextIOJobBuilder()
.addInput("foo", "bar")
.addExpectedOutput("foo", "bar")
.writeInputs();
Job job = runJob(
builder.getConfig(),
builder.getInputPath(),
builder.getOutputPath());
assertTrue(job.isSuccessful());
builder.verifyResults();
}
public Job runJob(Configuration conf, Path inputPath, Path outputPath)
throws ClassNotFoundException, IOException, InterruptedException {
Job job = new Job(conf);
job.setInputFormatClass(KeyValueTextInputFormat.class);
job.setMapOutputKeyClass(Text.class);
FileInputFormat.setInputPaths(job, inputPath);
FileOutputFormat.setOutputPath(job, outputPath);
job.waitForCompletion(false);
return job;
}
}