package mil.nga.giat.geowave.analytic.mapreduce; import java.io.IOException; import mil.nga.giat.geowave.analytic.PropertyManagement; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.mapreduce.Counters; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; public class ToolRunnerMapReduceIntegration implements MapReduceIntegration { @Override public Job getJob( final Tool tool ) throws IOException { return new Job( tool.getConf()); } @Override public int submit( final Configuration configuration, final PropertyManagement runTimeProperties, final GeoWaveAnalyticJobRunner tool ) throws Exception { return ToolRunner.run( configuration, tool, new String[] {}); } @Override public Counters waitForCompletion( final Job job ) throws ClassNotFoundException, InterruptedException, Exception { final boolean status = job.waitForCompletion(true); return status ? job.getCounters() : null; } @Override public Configuration getConfiguration( final PropertyManagement runTimeProperties ) throws IOException { return MapReduceJobController.getConfiguration(runTimeProperties); } }