package mil.nga.giat.geowave.analytic.mapreduce; import java.util.Arrays; import java.util.Collection; import mil.nga.giat.geowave.analytic.PropertyManagement; import mil.nga.giat.geowave.analytic.param.FormatConfiguration; import mil.nga.giat.geowave.analytic.param.OutputParameters; import mil.nga.giat.geowave.analytic.param.ParameterEnum; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat; public class SequenceFileOutputFormatConfiguration implements FormatConfiguration { final Path outputPath; public SequenceFileOutputFormatConfiguration() { outputPath = null; } public SequenceFileOutputFormatConfiguration( final Path outputPath ) { this.outputPath = outputPath; } @Override public void setup( final PropertyManagement runTimeProperties, final Configuration configuration ) throws Exception { final Path localOutputPath = outputPath == null ? runTimeProperties .getPropertyAsPath(OutputParameters.Output.HDFS_OUTPUT_PATH) : outputPath; if (localOutputPath != null) { configuration.set( "mapred.output.dir", localOutputPath.toString()); } } @Override public Class<?> getFormatClass() { return SequenceFileOutputFormat.class; } @Override public boolean isDataWritable() { return true; } @Override public void setDataIsWritable( final boolean isWritable ) { } @Override public Collection<ParameterEnum<?>> getParameters() { return Arrays.asList(new ParameterEnum<?>[] { OutputParameters.Output.HDFS_OUTPUT_PATH }); } }