package org.apache.sqoop.job.mr; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.mapreduce.JobContext; import org.apache.hadoop.mapreduce.JobStatus; import org.apache.hadoop.mapreduce.OutputCommitter; import org.apache.hadoop.mapreduce.TaskAttemptContext; import org.apache.sqoop.common.Direction; class SqoopOutputCommitter extends OutputCommitter { @Override public void setupJob(JobContext jobContext) { } @Override public void commitJob(JobContext jobContext) throws IOException { super.commitJob(jobContext); invokeDestroyerExecutor(jobContext, true); } @Override public void abortJob(JobContext jobContext, JobStatus.State state) throws IOException { super.abortJob(jobContext, state); invokeDestroyerExecutor(jobContext, false); } private void invokeDestroyerExecutor(JobContext jobContext, boolean success) { Configuration config = jobContext.getConfiguration(); DestroyerUtil.executeDestroyer(success, config, Direction.FROM); DestroyerUtil.executeDestroyer(success, config, Direction.TO); } @Override public void setupTask(TaskAttemptContext taskContext) { } @Override public void commitTask(TaskAttemptContext taskContext) { } @Override public void abortTask(TaskAttemptContext taskContext) { } @Override public boolean needsTaskCommit(TaskAttemptContext taskContext) { return false; } }